diff --git a/.dockerignore b/.dockerignore index c9c56767..9561e7d4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,5 @@ Dockerfile - +.github +integration_tests +zgrab2_schemas +*.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..aee6e903 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,18 @@ +version: 2 +updates: + - package-ecosystem: gomod + directory: / + schedule: + interval: weekly + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: weekly + - package-ecosystem: docker + directory: "/" + schedule: + interval: weekly + - package-ecosystem: docker + directory: "/docker-runner" + schedule: + interval: weekly diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index de72f088..00000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: ZGrab2 build action -on: [push, pull_request] -jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: 1.18 - - - name: Check out source - uses: actions/checkout@v2 - - - name: Build - run: | - go get -t ./... - make diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 00000000..fd4b66aa --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,153 @@ +# See also: +# https://docs.docker.com/build/ci/github-actions/multi-platform/ +# https://docs.github.com/en/actions/publishing-packages/publishing-docker-images + +name: Publish Docker image + +on: + push: + branches: + - master + tags: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + id-token: write + attestations: write + strategy: + fail-fast: true + matrix: + platform: + - linux/amd64 + - linux/arm/v6 + - linux/arm/v7 + - linux/arm64 + steps: + - name: Prepare + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - uses: docker/setup-qemu-action@v3 + - uses: docker/setup-buildx-action@v3 + - name: Build and push by digest + id: build + uses: docker/build-push-action@v5 + with: + context: . + cache-from: type=gha + cache-to: type=gha,mode=max + platforms: ${{ matrix.platform }} + labels: ${{ steps.meta.outputs.labels }} + outputs: type=image,name=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-digest: ${{ steps.build.outputs.digest }} + push-to-registry: true + + - name: Export digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: Upload digest + uses: actions/upload-artifact@v4 + with: + name: digests-${{ env.PLATFORM_PAIR }} + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + + publish: + needs: + - build + runs-on: ubuntu-latest + # Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job. + permissions: + contents: read + packages: write + id-token: write + attestations: write + steps: + - name: Download digests + uses: actions/download-artifact@v4 + with: + path: /tmp/digests + pattern: digests-* + merge-multiple: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=ref,event=tag + type=ref,event=branch + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create manifest list and push + id: push + working-directory: /tmp/digests + run: | + docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *) + + - name: Inspect image + id: inspect + run: | + docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} + IMAGE_DIGEST=$(docker buildx imagetools inspect --format "{{json .Manifest}}" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} | jq -r '.digest') + echo "IMAGE_DIGEST=$IMAGE_DIGEST" >> $GITHUB_OUTPUT + + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-digest: ${{ steps.inspect.outputs.IMAGE_DIGEST }} + push-to-registry: true diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml new file mode 100644 index 00000000..4a9f4aa5 --- /dev/null +++ b/.github/workflows/integration-test.yml @@ -0,0 +1,58 @@ +name: Test +on: + push: + branches: + - master + pull_request: + +jobs: + go-test: + name: Go Test + runs-on: ubuntu-latest + steps: + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.18 + + - name: Check out source + uses: actions/checkout@v4 + + - name: Build + run: | + go get -t ./... + make + + - name: Test + run: | + make test + + integration-test: + name: Integration Test + runs-on: ubuntu-latest + steps: + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.18 + + - name: Check out source + uses: actions/checkout@v4 + + - name: Install dependencies + run: | + set -e + sudo wget https://github.com/jmespath/jp/releases/download/0.2.1/jp-linux-amd64 -O /usr/local/bin/jp + sudo chmod +x /usr/local/bin/jp + # Install Python 2.7 + sudo apt update + sudo apt install -y python2 + curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py + sudo python2 get-pip.py + # Install Python dependencies + pip2 install --user zschema + pip2 install --user -r requirements.txt + + - name: Run tests + run: | + make integration-test \ No newline at end of file diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml new file mode 100644 index 00000000..0ca5ce6a --- /dev/null +++ b/.github/workflows/linter.yml @@ -0,0 +1,28 @@ +name: Lint + +on: + push: + branches: + - master + pull_request: + + +jobs: + py-black: + name: Python Formatter + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: psf/black@stable + go-fmt: + name: Go Formatter + runs-on: ubuntu-latest + if: false # Pending activation + steps: + - uses: actions/checkout@v4 + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: 1.18 + - name: Run go fmt + run: go fmt ./... \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 133e69e8..62c17184 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ## Build image ## -FROM golang:1.18.3-alpine3.16 AS build +FROM golang:1.20.4-alpine3.16 AS build # System dependencies RUN apk add --no-cache make @@ -15,7 +15,7 @@ COPY . . RUN make all ## Runtime image ## -FROM alpine:3.16 AS run +FROM alpine:3.20 AS run COPY --from=build /usr/src/zgrab2/cmd/zgrab2/zgrab2 /usr/bin/zgrab2 diff --git a/Makefile b/Makefile index 4a65dbbd..ee55fe5b 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ TEST_MODULES ?= all: zgrab2 -.PHONY: all clean integration-test integration-test-clean docker-runner container-clean gofmt test +.PHONY: all clean integration-test integration-test-clean docker-runner gofmt test # Test currently only runs on the modules folder because some of the # third-party libraries in lib (e.g. http) are failing. @@ -25,7 +25,7 @@ zgrab2: $(GO_FILES) rm -f zgrab2 ln -s cmd/zgrab2/zgrab2$(EXECUTABLE_EXTENSION) zgrab2 -docker-runner: zgrab2 +docker-runner: clean make -C docker-runner integration-test: docker-runner @@ -37,12 +37,6 @@ integration-test-clean: ./integration_tests/cleanup.sh make -C docker-runner clean -# This is the target for re-building from source in the container -container-clean: - rm -f zgrab2 - cd cmd/zgrab2 && go build -v -a . && cd ../.. - ln -s cmd/zgrab2/zgrab2$(EXECUTABLE_EXTENSION) zgrab2 - clean: cd cmd/zgrab2 && go clean rm -f zgrab2 diff --git a/README.md b/README.md index 0bdf440b..298d1706 100644 --- a/README.md +++ b/README.md @@ -5,38 +5,76 @@ ZGrab is a fast, modular application-layer network scanner designed for completi ZGrab 2.0 contains a new, modular ZGrab framework, which fully supersedes https://github.com/zmap/zgrab. -## Building +## Installation + +### With Docker + +You can run ZGrab 2.0 with our official Docker image. For example, to scan a single website using the HTTP module, you can use: + +```shell +echo 'example.com' | docker run --rm -i ghcr.io/zmap/zgrab2 http +``` + +For more complex scanning scenarios, such as using multiple modules or custom configurations, you can create a configuration file and pass it to the container: + +```shell +docker run --rm -i -v /path/to/your/config.ini:/config.ini ghcr.io/zmap/zgrab2 multiple -c /config.ini +``` + +Replace `/path/to/your/config.ini` with the path to your configuration file on the host machine. See [Multiple Module Usage](#multiple-module-usage) for more details on configurations. + +### Building from Source + +For Go 1.17 and later you must build from source: + +```shell +git clone https://github.com/zmap/zgrab2.git +cd zgrab2 +make +./zgrab2 +``` + + +For Go 1.16 and below you can install via go get: You will need to have a valid `$GOPATH` set up, for more information about `$GOPATH`, see https://golang.org/doc/code.html. Once you have a working `$GOPATH`, run: -``` -$ go get github.com/zmap/zgrab2 +```shell +go get github.com/zmap/zgrab2 ``` This will install zgrab under `$GOPATH/src/github.com/zmap/zgrab2` -``` -$ cd $GOPATH/src/github.com/zmap/zgrab2 -$ make +```shell +cd $GOPATH/src/github.com/zmap/zgrab2 +make ``` ## Single Module Usage ZGrab2 supports modules. For example, to run the ssh module use -``` +```shell ./zgrab2 ssh ``` +To retrieve detailed command-line usage and options for a specific module, append `-h` to the command: + +```bash +./zgrab2 [module] -h +``` + +This will display the module-specific options, as well as the application-wide options, including usage examples, available flags, and descriptions for each option. + Module specific options must be included after the module. Application specific options can be specified at any time. ## Input Format Targets are specified with input files or from `stdin`, in CSV format. Each input line has three fields: -``` +```text IP, DOMAIN, TAG ``` @@ -50,7 +88,7 @@ Unused fields can be blank, and trailing unused fields can be omitted entirely. These are examples of valid input lines: -``` +```text 10.0.0.1 domain.com 10.0.0.1, domain.com @@ -66,7 +104,7 @@ domain.com To run a scan with multiple modules, a `.ini` file must be used with the `multiple` module. Below is an example `.ini` file with the corresponding zgrab2 command. ***multiple.ini*** -``` +```ini [Application Options] output-file="output.txt" input-file="input.txt" @@ -81,21 +119,21 @@ endpoint="/" [ssh] port=22 ``` -``` +```shell ./zgrab2 multiple -c multiple.ini ``` `Application Options` must be the initial section name. Other section names should correspond exactly to the relevant zgrab2 module name. The default name for each module is the command name. If the same module is to be used multiple times then `name` must be specified and unique. Multiple module support is particularly powerful when combined with input tags and the `--trigger` scanner argument. For example, this input contains targets with two different tags: -``` +```text 141.212.113.199, , tagA 216.239.38.21, censys.io, tagB ``` Invoking zgrab2 with the following `multiple` configuration will perform an SSH grab on the first target above and an HTTP grab on the second target: -``` +```ini [ssh] trigger="tagA" name="ssh22" @@ -113,7 +151,7 @@ Add module to modules/ that satisfies the following interfaces: `Scanner`, `Scan The flags struct must embed zgrab2.BaseFlags. In the modules `init()` function the following must be included. -``` +```go func init() { var newModule NewModule _, err := zgrab2.AddCommand("module", "short description", "long description of module", portNumber, &newModule) @@ -125,7 +163,7 @@ func init() { ### Output schema -To add a schema for the new module, add a module under schemas, and update [`schemas/__init__.py`](schemas/__init__.py) to ensure that it is loaded. +To add a schema for the new module, add a module under schemas, and update [`zgrab2_schemas/zgrab2/__init__.py`](zgrab2_schemas/zgrab2/__init__.py) to ensure that it is loaded. See [zgrab2_schemas/README.md](zgrab2_schemas/README.md) for details. @@ -137,20 +175,24 @@ The only hard requirement is that the `test.sh` script drops its output in `$ZGR #### How to Run Integration Tests -To run integration tests, you must have [Docker](https://www.docker.com/) installed. Then, you can follow the following steps to run integration tests: +To run integration tests, you must have [Docker](https://www.docker.com/) and **Python 2** on host installed. Then, you can follow the following steps to run integration tests: -``` -$ go get github.com/jmespath/jp && go build github.com/jmespath/jp -$ pip install --user zschema -$ make integration-test +```shell +go get github.com/jmespath/jp && go build github.com/jmespath/jp +# or, sudo wget https://github.com/jmespath/jp/releases/download/0.2.1/jp-linux-amd64 -O /usr/local/bin/jp && sudo chmod +x /usr/local/bin/jp +pip2 install --user zschema +pip2 install --user -r requirements.txt +make integration-test ``` Running the integration tests will generate quite a bit of debug output. To ensure that tests completed successfully, you can check for a successful exit code after the tests complete: -``` -$ echo $? +```shell +echo $? 0 ``` +Refer to our [Github Actions workflow](.github/workflows/integration-test.yml) for an example of how to prepare environment for integration tests. + ## License ZGrab2.0 is licensed under Apache 2.0 and ISC. For more information, see the LICENSE file. diff --git a/bin/bin.go b/bin/bin.go index dc490461..50f7a055 100644 --- a/bin/bin.go +++ b/bin/bin.go @@ -61,7 +61,7 @@ func dumpHeapProfile() { // If CPU profiling is enabled (ZGRAB2_CPUPROFILE is not empty), start tracking // CPU profiling in the configured file. Caller is responsible for invoking // stopCPUProfile() when finished. -func startCPUProfile() { +func startCPUProfile() *os.File { if file := getCPUProfileFile(); file != "" { now := time.Now() fullFile := getFormattedFile(file, now) @@ -72,15 +72,21 @@ func startCPUProfile() { if err := pprof.StartCPUProfile(f); err != nil { log.Fatal("could not start CPU profile: ", err) } + return f } + + return nil } // If CPU profiling is enabled (ZGRAB2_CPUPROFILE is not empty), stop profiling // CPU usage. -func stopCPUProfile() { +func stopCPUProfile(f *os.File) { if getCPUProfileFile() != "" { pprof.StopCPUProfile() } + if f != nil { + f.Close() + } } // ZGrab2Main should be called by func main() in a binary. The caller is @@ -88,8 +94,8 @@ func stopCPUProfile() { // include custom sets of scan modules by creating new main packages with custom // sets of ZGrab modules imported with side-effects. func ZGrab2Main() { - startCPUProfile() - defer stopCPUProfile() + f := startCPUProfile() + defer stopCPUProfile(f) defer dumpHeapProfile() _, moduleType, flag, err := zgrab2.ParseCommandLine(os.Args[1:]) diff --git a/config.go b/config.go index ce398423..f59bb3f8 100644 --- a/config.go +++ b/config.go @@ -24,6 +24,7 @@ type Config struct { ConnectionsPerHost int `long:"connections-per-host" default:"1" description:"Number of times to connect to each host (results in more output)"` ReadLimitPerHost int `long:"read-limit-per-host" default:"96" description:"Maximum total kilobytes to read for a single host (default 96kb)"` Prometheus string `long:"prometheus" description:"Address to use for Prometheus server (e.g. localhost:8080). If empty, Prometheus is disabled."` + CustomDNS string `long:"dns" description:"Address of a custom DNS server for lookups. Default port is 53."` Multiple MultipleCommand `command:"multiple" description:"Multiple module actions"` inputFile *os.File outputFile *os.File @@ -102,7 +103,7 @@ func validateFrameworkConfiguration() { //validate/start prometheus if config.Prometheus != "" { go func() { - http.Handle("metrics", promhttp.Handler()) + http.Handle("/metrics", promhttp.Handler()) if err := http.ListenAndServe(config.Prometheus, nil); err != nil { log.Fatalf("could not run prometheus server: %s", err.Error()) } @@ -128,6 +129,14 @@ func validateFrameworkConfiguration() { if config.ReadLimitPerHost > 0 { DefaultBytesReadLimit = config.ReadLimitPerHost * 1024 } + + // Validate custom DNS + if config.CustomDNS != "" { + var err error + if config.CustomDNS, err = addDefaultPortToDNSServerName(config.CustomDNS); err != nil { + log.Fatalf("invalid DNS server address: %s", err) + } + } } // GetMetaFile returns the file to which metadata should be output diff --git a/conn.go b/conn.go index ef701c81..e4dc43e2 100644 --- a/conn.go +++ b/conn.go @@ -341,6 +341,16 @@ func (d *Dialer) SetDefaults() *Dialer { KeepAlive: d.Timeout, DualStack: true, } + + // Use custom DNS as default if set + if config.CustomDNS != "" { + d.Dialer.Resolver = &net.Resolver{ + PreferGo: true, + Dial: func(ctx context.Context, network, address string) (net.Conn, error) { + return net.Dial(network, config.CustomDNS) + }, + } + } } return d } diff --git a/docker-runner/Dockerfile b/docker-runner/Dockerfile deleted file mode 100644 index 9f845343..00000000 --- a/docker-runner/Dockerfile +++ /dev/null @@ -1,25 +0,0 @@ -FROM zgrab2_runner_base:latest - -WORKDIR /go/src/github.com/zmap - -# Grab the currently-active version of the source -ADD . zgrab2 - -# This would instead grab it from the source repo -# RUN go-wrapper download github.com/zmap/zgrab2 - -WORKDIR /go/src/github.com/zmap/zgrab2 - -RUN go get -f -u -v . -RUN go get -f -u -v -t . -RUN go get -f -u -v $(find ./modules -type d) -RUN go get -f -u -v -t $(find ./modules -type d) - -# This should already be executable, but just in case... -RUN chmod a+x ./docker-runner/entrypoint.sh - -# Build on the container -RUN make container-clean - -CMD [] -ENTRYPOINT ["/go/src/github.com/zmap/zgrab2/docker-runner/entrypoint.sh"] diff --git a/docker-runner/Makefile b/docker-runner/Makefile index d6647135..139eddbc 100644 --- a/docker-runner/Makefile +++ b/docker-runner/Makefile @@ -4,26 +4,23 @@ else EXECUTABLE_EXTENSION := endif -all: docker-runner.id +PROJ_ROOT := $(shell git rev-parse --show-toplevel) + +all: docker-runner.id service-base-image.id .PHONY: clean clean-all base-apt-update service-base-image.id: service-base.Dockerfile docker build -t zgrab2_service_base:latest -f service-base.Dockerfile -q . > service-base-image.id || (rm -f service-base-image.id && exit 1) -runner-base-image.id: runner-base.Dockerfile - docker build -t zgrab2_runner_base:latest -f runner-base.Dockerfile -q . > runner-base-image.id || (rm -f runner-base-image.id && exit 1) - base-apt-update: IMAGE_ID=zgrab2_service_base:latest ./base-apt-update.sh - IMAGE_ID=zgrab2_runner_base:latest ./base-apt-update.sh -docker-runner.id: Dockerfile ../cmd/zgrab2/zgrab2$(EXECUTABLE_EXTENSION) runner-base-image.id service-base-image.id - docker build -t zgrab2_runner:latest -f Dockerfile -q .. > docker-runner.id || (rm -f docker-runner.id && exit 1) +docker-runner.id: $(PROJ_ROOT)/Dockerfile + docker build -t zgrab2_runner:latest -f $(PROJ_ROOT)/Dockerfile -q $(PROJ_ROOT) > docker-runner.id || (rm -f docker-runner.id && exit 1) clean: if [ -f docker-runner.id ]; then docker rmi -f $$(cat docker-runner.id) && rm -f docker-runner.id; fi clean-all: clean if [ -f service-base-image.id ]; then docker rmi -f $$(cat service-base-image.id) && rm -f service-base-image.id; fi - if [ -f runner-base-image.id ]; then docker rmi -f $$(cat runner-base-image.id) && rm -f runner-base-image.id; fi diff --git a/docker-runner/docker-run.sh b/docker-runner/docker-run.sh index 074a8107..a13ed284 100755 --- a/docker-runner/docker-run.sh +++ b/docker-runner/docker-run.sh @@ -7,4 +7,4 @@ : "${CONTAINER_NAME:?}" set -e -docker run --rm --link $CONTAINER_NAME:target -e ZGRAB_TARGET=target zgrab2_runner $@ +echo 'target' | docker run --rm -i --link $CONTAINER_NAME:target zgrab2_runner $@ diff --git a/docker-runner/runner-base.Dockerfile b/docker-runner/runner-base.Dockerfile deleted file mode 100644 index de71ca2e..00000000 --- a/docker-runner/runner-base.Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -FROM golang:1.9 -# Base image that already has the pre-requisites downloaded. - -WORKDIR /go/src/github.com/zmap - -RUN go-wrapper download github.com/zmap/zgrab2 - -WORKDIR /go/src/github.com/zmap/zgrab2 - -RUN go get -v ./... -RUN go get -v -t ./... diff --git a/go.mod b/go.mod index f7c8723e..c5df5152 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/zmap/zgrab2 go 1.22 require ( +<<<<<<< HEAD github.com/hdm/jarm-go v0.0.7 github.com/prometheus/client_golang v1.19.0 github.com/sirupsen/logrus v1.9.3 @@ -13,6 +14,23 @@ require ( golang.org/x/net v0.22.0 golang.org/x/sys v0.18.0 golang.org/x/text v0.14.0 +======= + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/hdm/jarm-go v0.0.7 + github.com/prometheus/client_golang v1.14.0 + github.com/prometheus/common v0.42.0 // indirect + github.com/prometheus/procfs v0.9.0 // indirect + github.com/rabbitmq/amqp091-go v1.9.0 + github.com/sirupsen/logrus v1.9.0 + github.com/zmap/zcrypto v0.0.0-20230310154051-c8b263fd8300 + github.com/zmap/zflags v1.4.0-beta.1.0.20200204220219-9d95409821b6 + golang.org/x/crypto v0.23.0 + golang.org/x/net v0.25.0 + golang.org/x/sys v0.20.0 + golang.org/x/text v0.15.0 + google.golang.org/protobuf v1.33.0 // indirect +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v2 v2.4.0 diff --git a/go.sum b/go.sum index 823a994b..5f5b73cc 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,5 @@ cloud.google.com/go/compute/metadata v0.2.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= +<<<<<<< HEAD github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8/go.mod h1:I0gYDMZ6Z5GRU7l58bNFSkPTFN6Yl12dsUlAZ8xy98g= github.com/RumbleDiscovery/rumble-tools v0.0.0-20201105153123-f2adbb3244d2/go.mod h1:jD2+mU+E2SZUuAOHZvZj4xP4frlOo+N/YrXDvASFhkE= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -12,13 +13,102 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +======= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/RumbleDiscovery/rumble-tools v0.0.0-20201105153123-f2adbb3244d2/go.mod h1:jD2+mU+E2SZUuAOHZvZj4xP4frlOo+N/YrXDvASFhkE= +github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +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= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +<<<<<<< HEAD github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +======= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +<<<<<<< HEAD github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github/v50 v50.2.0/go.mod h1:VBY8FB6yPIjrtKhozXv4FQupxKLS6H4m6xFZlT43q8Q= @@ -26,12 +116,48 @@ github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17 github.com/hdm/jarm-go v0.0.7 h1:Eq0geenHrBSYuKrdVhrBdMMzOmA+CAMLzN2WrF3eL6A= github.com/hdm/jarm-go v0.0.7/go.mod h1:kinGoS0+Sdn1Rr54OtanET5E5n7AlD6T6CrJAKDjJSQ= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +======= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hdm/jarm-go v0.0.7 h1:Eq0geenHrBSYuKrdVhrBdMMzOmA+CAMLzN2WrF3eL6A= +github.com/hdm/jarm-go v0.0.7/go.mod h1:kinGoS0+Sdn1Rr54OtanET5E5n7AlD6T6CrJAKDjJSQ= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +<<<<<<< HEAD github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= @@ -52,11 +178,69 @@ github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43Z github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +======= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/miekg/dns v1.1.35/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= +github.com/mreiferson/go-httpclient v0.0.0-20201222173833-5e475fde3a4d/go.mod h1:OQA4XLvDbMgS8P0CevmM4m9Q3Jq4phKUzcocxuGJ5m8= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.42.0 h1:EKsfXEYo4JpWMHH5cg+KOUWeuJSov1Id8zGR8eeI1YM= +github.com/prometheus/common v0.42.0/go.mod h1:xBwqVerjNdUDjgODMpudtOMwlOwf2SaTr1yjz4b7Zbc= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.9.0 h1:wzCHvIvM5SxWqYvwgVL7yJY8Lz3PKn49KQtpgMYJfhI= +github.com/prometheus/procfs v0.9.0/go.mod h1:+pB4zwohETzFnmlpe6yd2lSc+0/46IYZRB/chUwxUZY= +github.com/rabbitmq/amqp091-go v1.9.0 h1:qrQtyzB4H8BQgEuJwhmVQqVHB9O4+MNDJCCAcpc3Aoo= +github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/sirupsen/logrus v1.3.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +<<<<<<< HEAD github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +======= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -64,10 +248,25 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +<<<<<<< HEAD github.com/weppos/publicsuffix-go v0.13.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= github.com/weppos/publicsuffix-go v0.30.2-0.20230730094716-a20f9abcc222/go.mod h1:s41lQh6dIsDWIC1OWh7ChWJXLH0zkJ9KHZVqA7vHyuQ= github.com/weppos/publicsuffix-go v0.30.2 h1:Np18yzfMR90jNampWFs7iSh2sw/qCZkhL41/ffyihCU= github.com/weppos/publicsuffix-go v0.30.2/go.mod h1:/hGscit36Yt+wammfBBwdMdxBT8btsTt6KvwO9OvMyM= +======= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/weppos/publicsuffix-go v0.12.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= +github.com/weppos/publicsuffix-go v0.13.0/go.mod h1:z3LCPQ38eedDQSwmsSRW4Y7t2L8Ln16JPQ02lHAdn5k= +github.com/weppos/publicsuffix-go v0.30.0 h1:QHPZ2GRu/YE7cvejH9iyavPOkVCB4dNxp2ZvtT+vQLY= +github.com/weppos/publicsuffix-go v0.30.0/go.mod h1:kBi8zwYnR0zrbm8RcuN1o9Fzgpnnn+btVN8uWPMyXAY= +github.com/weppos/publicsuffix-go/publicsuffix/generator v0.0.0-20220927085643-dc0d00c92642/go.mod h1:GHfoeIdZLdZmLjMlzBftbTDntahTttUMWjxZwQJhULE= +github.com/xhit/go-str2duration v1.2.0/go.mod h1:3cPSlfZlUHVlneIVfePFWcJZsuwf+P1v2SRTV4cUmp4= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE= github.com/zmap/rc2 v0.0.0-20190804163417-abaa70531248 h1:Nzukz5fNOBIHOsnP+6I79kPx3QhLv8nBy2mfFhBRq30= @@ -76,6 +275,7 @@ github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4/go.mod h1:5iU54t github.com/zmap/zcertificate v0.0.1/go.mod h1:q0dlN54Jm4NVSSuzisusQY0hqDWvu92C+TWveAxiVWk= github.com/zmap/zcrypto v0.0.0-20201128221613-3719af1573cf/go.mod h1:aPM7r+JOkfL+9qSB4KbYjtoEzJqUK50EXkkJabeNJDQ= github.com/zmap/zcrypto v0.0.0-20201211161100-e54a5822fb7e/go.mod h1:aPM7r+JOkfL+9qSB4KbYjtoEzJqUK50EXkkJabeNJDQ= +<<<<<<< HEAD github.com/zmap/zcrypto v0.0.0-20231219022726-a1f61fb1661c h1:U1b4THKcgOpJ+kILupuznNwPiURtwVW3e9alJvji9+s= github.com/zmap/zcrypto v0.0.0-20231219022726-a1f61fb1661c/go.mod h1:GSDpFDD4TASObxvfZfvpZZ3OWHIUHMlhVWlkOe4ewVk= github.com/zmap/zflags v1.4.0-beta.1.0.20200204220219-9d95409821b6 h1:XYA+NN2AS4mRmIDVu2nCtrjU17zKlRihO3MnlcmueUw= @@ -83,6 +283,23 @@ github.com/zmap/zflags v1.4.0-beta.1.0.20200204220219-9d95409821b6/go.mod h1:HXD github.com/zmap/zlint/v3 v3.0.0/go.mod h1:paGwFySdHIBEMJ61YjoqT4h7Ge+fdYG4sUQhnTb1lJ8= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +======= +github.com/zmap/zcrypto v0.0.0-20230310154051-c8b263fd8300 h1:DZH5n7L3L8RxKdSyJHZt7WePgwdhHnPhQFdQSJaHF+o= +github.com/zmap/zcrypto v0.0.0-20230310154051-c8b263fd8300/go.mod h1:mOd4yUMgn2fe2nV9KXsa9AyQBFZGzygVPovsZR+Rl5w= +github.com/zmap/zflags v1.4.0-beta.1.0.20200204220219-9d95409821b6 h1:XYA+NN2AS4mRmIDVu2nCtrjU17zKlRihO3MnlcmueUw= +github.com/zmap/zflags v1.4.0-beta.1.0.20200204220219-9d95409821b6/go.mod h1:HXDUD+uue8yeLHr0eXx1lvY6CvMiHbTKw5nGmA9OUoo= +github.com/zmap/zlint/v3 v3.0.0/go.mod h1:paGwFySdHIBEMJ61YjoqT4h7Ge+fdYG4sUQhnTb1lJ8= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= @@ -90,6 +307,7 @@ golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +<<<<<<< HEAD golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= @@ -97,12 +315,57 @@ golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81 h1:6R2FC06FonbXQ8pK11/PDFY6N6LWlf9KlzibaCapmqc= golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +======= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +<<<<<<< HEAD +======= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +<<<<<<< HEAD +======= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200528225125-3c3fba18258b/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= @@ -110,6 +373,7 @@ golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +<<<<<<< HEAD golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= @@ -117,25 +381,79 @@ golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= +======= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +<<<<<<< HEAD +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +======= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +<<<<<<< HEAD +======= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +<<<<<<< HEAD +======= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201126233918-771906719818/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +<<<<<<< HEAD +======= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +<<<<<<< HEAD golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -144,15 +462,30 @@ golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +======= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y= +golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +<<<<<<< HEAD golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +======= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -161,33 +494,188 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +<<<<<<< HEAD golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +======= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk= +golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/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-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216052735-49a3e744a425/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +<<<<<<< HEAD +======= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +<<<<<<< HEAD google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +======= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +<<<<<<< HEAD +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/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/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= +gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +======= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/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/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +<<<<<<< HEAD +======= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +>>>>>>> 9dc4b8af853d23bf55340c69d5d3ff2a4f1a4806 diff --git a/input.go b/input.go index 88305602..d3640004 100644 --- a/input.go +++ b/input.go @@ -5,29 +5,31 @@ import ( "fmt" "io" "net" + "strconv" "strings" log "github.com/sirupsen/logrus" ) // ParseCSVTarget takes a record from a CSV-format input file and -// returns the specified ipnet, domain, and tag, or an error. +// returns the specified ipnet, domain, tag and port or an error. // -// ZGrab2 input files have three fields: -// IP, DOMAIN, TAG +// ZGrab2 input files have four fields: +// +// IP, DOMAIN, TAG, PORT // // Each line specifies a target to scan by its IP address, domain -// name, or both, as well as an optional tag used to determine which +// name or both, as well as an optional tag used to determine which // scanners will be invoked. // +// Port number has been added to the end of the line for compatibility reasons. // A CIDR block may be provided in the IP field, in which case the // framework expands the record into targets for every address in the // block. // // Trailing empty fields may be omitted. // Comment lines begin with #, and empty lines are ignored. -// -func ParseCSVTarget(fields []string) (ipnet *net.IPNet, domain string, tag string, err error) { +func ParseCSVTarget(fields []string) (ipnet *net.IPNet, domain string, tag string, port string, err error) { for i := range fields { fields[i] = strings.TrimSpace(fields[i]) } @@ -47,7 +49,11 @@ func ParseCSVTarget(fields []string) (ipnet *net.IPNet, domain string, tag strin if len(fields) > 2 { tag = fields[2] } + // Use string for port to allow empty port if len(fields) > 3 { + port = fields[3] + } + if len(fields) > 4 { err = fmt.Errorf("too many fields: %q", fields) return } @@ -102,24 +108,41 @@ func GetTargetsCSV(source io.Reader, ch chan<- ScanTarget) error { if len(fields) == 0 { continue } - ipnet, domain, tag, err := ParseCSVTarget(fields) + ipnet, domain, tag, port, err := ParseCSVTarget(fields) if err != nil { log.Errorf("parse error, skipping: %v", err) continue } var ip net.IP + var port_uint uint + if port != "" { + port_int, err := strconv.Atoi(port) + port_uint = uint(port_int) + if err != nil { + log.Errorf("parse error, skipping: %v", err) + continue + } + } if ipnet != nil { if ipnet.Mask != nil { // expand CIDR block into one target for each IP for ip = ipnet.IP.Mask(ipnet.Mask); ipnet.Contains(ip); incrementIP(ip) { - ch <- ScanTarget{IP: duplicateIP(ip), Domain: domain, Tag: tag} + if port == "" { + ch <- ScanTarget{IP: duplicateIP(ip), Domain: domain, Tag: tag} + } else { + ch <- ScanTarget{IP: duplicateIP(ip), Domain: domain, Tag: tag, Port: &port_uint} + } } continue } else { ip = ipnet.IP } } - ch <- ScanTarget{IP: ip, Domain: domain, Tag: tag} + if port == "" { + ch <- ScanTarget{IP: ip, Domain: domain, Tag: tag} + } else { + ch <- ScanTarget{IP: ip, Domain: domain, Tag: tag, Port: &port_uint} + } } return nil } diff --git a/input_test.go b/input_test.go index 892cef16..b9d9d9a5 100644 --- a/input_test.go +++ b/input_test.go @@ -39,8 +39,27 @@ func TestParseCSVTarget(t *testing.T) { ipnet *net.IPNet domain string tag string + port string success bool }{ + // IP DOMAIN TAG PORT + { + fields: []string{"10.0.0.1", "example.com", "tag", "443"}, + ipnet: parseIP("10.0.0.1"), + domain: "example.com", + tag: "tag", + port: "443", + success: true, + }, + // IP DOMAIN TAG PORT + { + fields: []string{"10.0.0.1", "example.com", "tag"}, + ipnet: parseIP("10.0.0.1"), + domain: "example.com", + tag: "tag", + port: "", + success: true, + }, // IP DOMAIN TAG { fields: []string{"10.0.0.1", "example.com", "tag"}, @@ -129,14 +148,14 @@ func TestParseCSVTarget(t *testing.T) { } for _, test := range tests { - ipnet, domain, tag, err := ParseCSVTarget(test.fields) + ipnet, domain, tag, port, err := ParseCSVTarget(test.fields) if (err == nil) != test.success { t.Errorf("wrong error status (got err=%v, success should be %v): %q", err, test.success, test.fields) return } if err == nil { - if ipnetString(ipnet) != ipnetString(test.ipnet) || domain != test.domain || tag != test.tag { - t.Errorf("wrong result (got %v,%v,%v; expected %v,%v,%v): %q", ipnetString(ipnet), domain, tag, ipnetString(test.ipnet), test.domain, test.tag, test.fields) + if ipnetString(ipnet) != ipnetString(test.ipnet) || domain != test.domain || tag != test.tag || port != test.port { + t.Errorf("wrong result (got %v,%v,%v,%v ; expected %v,%v,%v,%v): %q", ipnetString(ipnet), domain, tag, port, ipnetString(test.ipnet), test.domain, test.tag, test.port, test.fields) return } } @@ -150,8 +169,11 @@ func TestGetTargetsCSV(t *testing.T) { 10.0.0.1 ,example.com example.com -2.2.2.2/30,, tag` - +2.2.2.2/30,, tag +10.0.0.1,example.com,tag,443 +10.0.0.1,,,443 +` + port := uint(443) expected := []ScanTarget{ ScanTarget{IP: net.ParseIP("10.0.0.1"), Domain: "example.com", Tag: "tag"}, ScanTarget{IP: net.ParseIP("10.0.0.1"), Domain: "example.com"}, @@ -162,6 +184,8 @@ example.com ScanTarget{IP: net.ParseIP("2.2.2.1"), Tag: "tag"}, ScanTarget{IP: net.ParseIP("2.2.2.2"), Tag: "tag"}, ScanTarget{IP: net.ParseIP("2.2.2.3"), Tag: "tag"}, + ScanTarget{IP: net.ParseIP("10.0.0.1"), Domain: "example.com", Tag: "tag", Port: &port}, + ScanTarget{IP: net.ParseIP("10.0.0.1"), Port: &port}, } ch := make(chan ScanTarget, 0) diff --git a/integration_tests/.template/schema.py b/integration_tests/.template/schema.py index 80d8bbd9..402effd8 100644 --- a/integration_tests/.template/schema.py +++ b/integration_tests/.template/schema.py @@ -7,12 +7,12 @@ import zcrypto_schemas.zcrypto as zcrypto import zgrab2 -#{MODULE_NAME}_scan_response = SubRecord({ - "result": SubRecord({ - # TODO FIXME IMPLEMENT SCHEMA - }) -}, extends=zgrab2.base_scan_response) +# {MODULE_NAME}_scan_response = SubRecord({ +# "result": SubRecord({ +# # TODO FIXME IMPLEMENT SCHEMA +# }) +# }, extends=zgrab2.base_scan_response) -zschema.registry.register_schema("zgrab2-#{MODULE_NAME}", #{MODULE_NAME}_scan_response) +# zschema.registry.register_schema("zgrab2-#{MODULE_NAME}", #{MODULE_NAME}_scan_response) -zgrab2.register_scan_response_type("#{MODULE_NAME}", #{MODULE_NAME}_scan_response) +# zgrab2.register_scan_response_type("#{MODULE_NAME}", #{MODULE_NAME}_scan_response) diff --git a/integration_tests/.template/test.sh b/integration_tests/.template/test.sh index 650cea14..749de495 100755 --- a/integration_tests/.template/test.sh +++ b/integration_tests/.template/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/#{MODULE_NAME} diff --git a/integration_tests/amqp091/cleanup.sh b/integration_tests/amqp091/cleanup.sh new file mode 100644 index 00000000..4b1ae12b --- /dev/null +++ b/integration_tests/amqp091/cleanup.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Keep cleaning up even if something fails +set +e + +# Stop all AMQP containers. + +VERSIONS="3.12.14 3.13.2" + +for version in $VERSIONS; do + CONTAINER_NAME="zgrab_amqp091-$version" + echo "amqp091/cleanup: Stopping $CONTAINER_NAME..." + docker stop $CONTAINER_NAME + echo "amqp091/cleanup: ...stopped." +done diff --git a/integration_tests/amqp091/setup.sh b/integration_tests/amqp091/setup.sh new file mode 100644 index 00000000..ddf52e9c --- /dev/null +++ b/integration_tests/amqp091/setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash -e + +VERSIONS="3.12.14 3.13.2" + +function launch() { + VERSION=$1 + CONTAINER_NAME="zgrab_amqp091-$VERSION" + if docker ps --filter "name=$CONTAINER_NAME" | grep -q $CONTAINER_NAME; then + echo "amqp091/setup: Container $CONTAINER_NAME already running -- skipping launch..." + return + fi + docker run -td --rm --name $CONTAINER_NAME rabbitmq:$VERSION +} + +function waitFor() { + VERSION=$1 + CONTAINER_NAME=zgrab_amqp091-$VERSION + echo "amqp091/setup: Waiting for $CONTAINER_NAME to become ready..." + while ! (docker logs --tail all $CONTAINER_NAME | grep -q "started TCP listener on"); do + echo -n "." + sleep 1 + done + for i in $(seq 1 5); do + echo -n "*" + sleep 1 + done + echo "...ok." +} + +echo "amqp091/setup: Launching docker containers..." +for version in $VERSIONS; do + launch $version +done + +for version in $VERSIONS; do + waitFor $version +done diff --git a/integration_tests/amqp091/test.sh b/integration_tests/amqp091/test.sh new file mode 100644 index 00000000..65cdfa2a --- /dev/null +++ b/integration_tests/amqp091/test.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash +set -e + +VERSIONS="3.12.14 3.13.2" + +# Run the AMQP-specific integration tests: +# 1. Run zgrab2 on the container +# 2. Check that data.amqp091.result.server_properties.version matches $MQ_VERSION + +ZGRAB_ROOT=$(git rev-parse --show-toplevel) +ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output + +status=0 + +function doTest() { + MQ_VERSION=$1 + + SUFFIX="" + AUTH_ARGS="" + if [[ -n "$2" ]]; then + AUTH_ARGS=$2 + SUFFIX="-auth" + fi + CONTAINER_NAME="zgrab_amqp091-${MQ_VERSION}" + OUTPUT_FILE="$ZGRAB_OUTPUT/amqp091/${MQ_VERSION}${SUFFIX}.json" + echo "amqp091/test: Testing RabbitMQ Version ${MQ_VERSION}${SUFFIX}..." + CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh amqp091 $AUTH_ARGS --timeout 10s >$OUTPUT_FILE + SERVER_VERSION=$(jp -u data.amqp091.result.server_properties.version <$OUTPUT_FILE) + if [[ "$SERVER_VERSION" == "$MQ_VERSION" ]]; then + echo "amqp091/test: Server version matches expected version: $SERVER_VERSION == $MQ_VERSION" + else + echo "amqp091/test: Server version mismatch: Got $SERVER_VERSION, expected $MQ_VERSION. Full output: [[" + cat $OUTPUT_FILE + echo "]]" + status=1 + fi + + if [[ -n "$AUTH_ARGS" ]]; then + AUTH_SUCCESS=$(jp -u data.amqp091.result.auth_success <$OUTPUT_FILE) + if [[ "$AUTH_SUCCESS" == "true" ]]; then + echo "amqp091/test: Auth test successful" + else + echo "amqp091/test: Auth test failed" + status=1 + fi + fi + + echo "amqp091/test: BEGIN docker+amqp091 logs from $CONTAINER_NAME [{(" + docker logs --tail all $CONTAINER_NAME + echo ")}] END docker+amqp091 logs from $CONTAINER_NAME" +} + +mkdir -p $ZGRAB_OUTPUT/amqp091 + +for version in $VERSIONS; do + doTest $version + doTest $version "--auth-user guest --auth-pass guest" +done + +exit $status diff --git a/integration_tests/ftp/test.sh b/integration_tests/ftp/test.sh index 2810bef3..8eb4268b 100755 --- a/integration_tests/ftp/test.sh +++ b/integration_tests/ftp/test.sh @@ -3,7 +3,7 @@ set -e MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output CONTAINER_NAME="zgrab_ftp" @@ -22,7 +22,7 @@ echo "ftp/test: Testing FTP on $CONTAINER_NAME..." CONTAINER_NAME=$CONTAINER_NAME $ZGRAB_ROOT/docker-runner/docker-run.sh ftp > $OUTPUT_DIR/default.json echo "ftp/test: BEGIN vsftpd logs from $CONTAINER_NAME [{(" -docker exec -t $CONTAINER_NAME cat //var/log/vsftpd.log +docker exec $CONTAINER_NAME cat //var/log/vsftpd.log echo ")}] END vsftpd logs from $CONTAINER_NAME" echo "ftp/test: BEGIN docker logs from $CONTAINER_NAME [{(" diff --git a/integration_tests/http/setup.sh b/integration_tests/http/setup.sh index a69c90cb..9408b4d8 100755 --- a/integration_tests/http/setup.sh +++ b/integration_tests/http/setup.sh @@ -20,7 +20,7 @@ fi echo -n "http/setup: Waiting on $CONTAINER_NAME to start..." -while ! docker exec -t $CONTAINER_NAME cat //var/log/lighttpd/error.log | grep -q "server started"; do +while ! docker exec $CONTAINER_NAME cat //var/log/lighttpd/error.log | grep -q "server started"; do echo -n "." done diff --git a/integration_tests/http/test.sh b/integration_tests/http/test.sh index 4604b01b..9225a151 100755 --- a/integration_tests/http/test.sh +++ b/integration_tests/http/test.sh @@ -3,7 +3,7 @@ set -e MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output OUTPUT_ROOT=$ZGRAB_OUTPUT/http @@ -29,5 +29,5 @@ docker logs --tail all $CONTAINER_NAME echo ")}] END docker logs from $CONTAINER_NAME" echo "http/test: BEGIN https logs from $CONTAINER_NAME [{(" -docker exec -it $CONTAINER_NAME cat //var/log/lighttpd/error.log +docker exec $CONTAINER_NAME cat //var/log/lighttpd/error.log echo ")}] END docker logs from $CONTAINER_NAME" diff --git a/integration_tests/ipp/test.sh b/integration_tests/ipp/test.sh index 5eca45aa..823381e3 100755 --- a/integration_tests/ipp/test.sh +++ b/integration_tests/ipp/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output OUTPUT_ROOT=$ZGRAB_OUTPUT/ipp @@ -82,14 +82,14 @@ for version in $versions; do # TODO: If there are any other relevant log files, dump those to stdout here. # FIXME: Only dump these 3 logs if they exist #echo "ipp/test: BEGIN cups logs from $CONTAINER_NAME [{(" - #docker exec -t $CONTAINER_NAME cat //var/log/cups/access_log + #docker exec $CONTAINER_NAME cat //var/log/cups/access_log #echo ")}] END cups logs from $CONTAINER_NAME" #echo "ipp/test: BEGIN cups logs from $CONTAINER_NAME [{(" - #docker exec -t $CONTAINER_NAME cat //var/log/cups/error_log + #docker exec $CONTAINER_NAME cat //var/log/cups/error_log #echo ")}] END cups logs from $CONTAINER_NAME" #echo "ipp/test: BEGIN cups logs from $CONTAINER_NAME [{(" - #docker exec -t $CONTAINER_NAME cat //var/log/cups/page_log + #docker exec $CONTAINER_NAME cat //var/log/cups/page_log #echo ")}] END cups logs from $CONTAINER_NAME" done diff --git a/integration_tests/mongodb/test.sh b/integration_tests/mongodb/test.sh index 4552ef55..e784357e 100755 --- a/integration_tests/mongodb/test.sh +++ b/integration_tests/mongodb/test.sh @@ -5,7 +5,7 @@ set -e versions="3.2.20 3.6.6 4.0.1 4.1.2" MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/mongodb diff --git a/integration_tests/mssql/setup.sh b/integration_tests/mssql/setup.sh index 584f4e0d..a4b7a0c8 100755 --- a/integration_tests/mssql/setup.sh +++ b/integration_tests/mssql/setup.sh @@ -2,8 +2,8 @@ echo "mssql/setup: Tests setup for mssql" -CONTAINER_IMAGE="microsoft/mssql-server-linux" -CONTAINER_VERSION="2017-CU3" +CONTAINER_IMAGE="mcr.microsoft.com/mssql/server" +CONTAINER_VERSION="2017-latest" CONTAINER_NAME="zgrab_mssql-2017-linux" # Supported MSSQL_PRODUCT_ID values are Developer, Express, Standard, Enterprise, EnterpriseCore diff --git a/integration_tests/mssql/test.sh b/integration_tests/mssql/test.sh index 521910fa..8571dfaf 100755 --- a/integration_tests/mssql/test.sh +++ b/integration_tests/mssql/test.sh @@ -3,7 +3,7 @@ set -e MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output CONTAINER_NAME="zgrab_mssql-2017-linux" diff --git a/integration_tests/mysql/test.sh b/integration_tests/mysql/test.sh index fe62f468..ecc0ff58 100755 --- a/integration_tests/mysql/test.sh +++ b/integration_tests/mysql/test.sh @@ -9,7 +9,7 @@ versions="5.5 5.6 5.7 8.0" MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output status=0 diff --git a/integration_tests/ntp/test.sh b/integration_tests/ntp/test.sh index bfc1343e..a0c8c635 100755 --- a/integration_tests/ntp/test.sh +++ b/integration_tests/ntp/test.sh @@ -3,7 +3,7 @@ set -e MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output OUTPUT_ROOT=$ZGRAB_OUTPUT/ntp diff --git a/integration_tests/pop3/test.sh b/integration_tests/pop3/test.sh index b28129d0..56ba5f32 100755 --- a/integration_tests/pop3/test.sh +++ b/integration_tests/pop3/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/pop3 diff --git a/integration_tests/postgres/setup.sh b/integration_tests/postgres/setup.sh index 454414b5..7d21f44b 100755 --- a/integration_tests/postgres/setup.sh +++ b/integration_tests/postgres/setup.sh @@ -46,7 +46,7 @@ function waitFor() { fi sleep 1 done - while ! (docker exec -t $CONTAINER_NAME cat //var/lib/postgresql/data/pg_log/postgres.log | grep -q "STARTED; state"); do + while ! (docker exec $CONTAINER_NAME cat //var/lib/postgresql/data/pg_log/postgres.log | grep -q "STARTED; state"); do echo -n "." sleep 1 done diff --git a/integration_tests/postgres/test.sh b/integration_tests/postgres/test.sh index dedb4031..102a5667 100755 --- a/integration_tests/postgres/test.sh +++ b/integration_tests/postgres/test.sh @@ -5,7 +5,7 @@ set -e versions="9.3 9.4 9.5 9.6 10.1" types="ssl nossl" -ZGRAB_ROOT=$(dirname $0)/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/postgres @@ -20,7 +20,7 @@ function doTest() { echo ")}] END DOCKER LOGS FROM $CONTAINER_NAME" echo "BEGIN POSTGRES LOGS FROM $CONTAINER_NAME [{(" # TODO: The "//var/lib" is a work-around for MinGW - docker exec -t $CONTAINER_NAME cat //var/lib/postgresql/data/pg_log/postgres.log + docker exec $CONTAINER_NAME cat //var/lib/postgresql/data/pg_log/postgres.log echo ")}] END POSTGRES LOGS FROM $CONTAINER_NAME" } diff --git a/integration_tests/redis/test.sh b/integration_tests/redis/test.sh index 555575a3..18d41b52 100755 --- a/integration_tests/redis/test.sh +++ b/integration_tests/redis/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output # FIXME: Find a way to mount host to container and have it pass CircleCI tests. diff --git a/integration_tests/setup.sh b/integration_tests/setup.sh index e4be6954..8c140227 100755 --- a/integration_tests/setup.sh +++ b/integration_tests/setup.sh @@ -12,7 +12,7 @@ set -e # Run from root of project TEST_DIR=$(dirname "$0") -ZGRAB_ROOT="$TEST_DIR/.." +ZGRAB_ROOT=$(git rev-parse --show-toplevel) cd "$ZGRAB_ROOT" echo "Setting up integration tests..." diff --git a/integration_tests/smtp/test.sh b/integration_tests/smtp/test.sh index ad08cad8..37dde58e 100755 --- a/integration_tests/smtp/test.sh +++ b/integration_tests/smtp/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/smtp diff --git a/integration_tests/ssh/test.sh b/integration_tests/ssh/test.sh index a974df0e..97abf3e6 100755 --- a/integration_tests/ssh/test.sh +++ b/integration_tests/ssh/test.sh @@ -3,7 +3,7 @@ set -e MODULE_DIR=$(dirname $0) TEST_ROOT=$MODULE_DIR/.. -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output CONTAINER_NAME="zgrab_ssh" diff --git a/integration_tests/telnet/test.sh b/integration_tests/telnet/test.sh index 153807d2..75c03267 100755 --- a/integration_tests/telnet/test.sh +++ b/integration_tests/telnet/test.sh @@ -2,7 +2,7 @@ set -e MODULE_DIR=$(dirname $0) -ZGRAB_ROOT=$MODULE_DIR/../.. +ZGRAB_ROOT=$(git rev-parse --show-toplevel) ZGRAB_OUTPUT=$ZGRAB_ROOT/zgrab-output mkdir -p $ZGRAB_OUTPUT/telnet diff --git a/integration_tests/test.sh b/integration_tests/test.sh index 2fdea2a9..85591023 100755 --- a/integration_tests/test.sh +++ b/integration_tests/test.sh @@ -28,9 +28,7 @@ set -o pipefail # # Run from root of project -TEST_DIR=$(dirname "$0") -ZGRAB_ROOT="$TEST_DIR/.." -INTEGRATION_TEST_VENV=".integration_tests.venv" +ZGRAB_ROOT=$(git rev-parse --show-toplevel) cd "$ZGRAB_ROOT" @@ -39,8 +37,8 @@ ZGRAB_OUTPUT="zgrab-output" mkdir -p $ZGRAB_OUTPUT if ! which jp; then - go get github.com/jmespath/jp && go build github.com/jmespath/jp - export PATH=$PATH:$GOPATH/bin + echo "Please install jp" + exit 1 fi pushd integration_tests @@ -74,21 +72,13 @@ status=0 failures="" echo "Doing schema validation..." -if ! [ -f "${INTEGRATION_TEST_VENV}/bin/python" ]; then - virtualenv "${INTEGRATION_TEST_VENV}" - "${INTEGRATION_TEST_VENV}/bin/pip" install zschema - "${INTEGRATION_TEST_VENV}/bin/pip" install -r requirements.txt -fi - -. "${INTEGRATION_TEST_VENV}/bin/activate" - for protocol in $(ls $ZGRAB_OUTPUT); do for outfile in $(ls $ZGRAB_OUTPUT/$protocol); do target="$ZGRAB_OUTPUT/$protocol/$outfile" echo "Validating $target [{(" cat $target echo ")}]:" - if ! python -m zschema validate zgrab2 $target --path . --module zgrab2_schemas.zgrab2 ; then + if ! python2 -m zschema validate zgrab2 $target --path . --module zgrab2_schemas.zgrab2 ; then echo "Schema validation failed for $protocol/$outfile" err="schema failure@$protocol/$outfile" if [[ $status -eq 0 ]]; then diff --git a/lib/http/client.go b/lib/http/client.go index 029b797f..b21f346b 100644 --- a/lib/http/client.go +++ b/lib/http/client.go @@ -831,9 +831,11 @@ func (b *cancelTimerBody) Read(p []byte) (n int, err error) { } func (b *cancelTimerBody) Close() error { - err := b.rc.Close() - b.stop() - return err + defer b.stop() + if b.rc != nil { + return b.rc.Close() + } + return nil } func shouldCopyHeaderOnRedirect(headerKey string, initial, dest *url.URL) bool { diff --git a/lib/http/response.go b/lib/http/response.go index a90a5751..076ca189 100644 --- a/lib/http/response.go +++ b/lib/http/response.go @@ -45,6 +45,12 @@ type Response struct { // Keys in the map are canonicalized (see CanonicalHeaderKey). Header Header `json:"headers,omitempty"` + // The raw bytes of the MIME headers, as read from the underlying + // reader. This allows for post-processing to be done on an exact + // copy of the headers. The headers will not be canonicalized nor + // re-ordered or converted to a map. + HeadersRaw []byte `json:"headers_raw,omitempty"` + // Body represents the response body. // // The http Client and Transport guarantee that Body is always @@ -158,11 +164,23 @@ func (r *Response) Location() (*url.URL, error) { // After that call, clients can inspect resp.Trailer to find key/value // pairs included in the response trailer. func ReadResponse(r *bufio.Reader, req *Request) (*Response, error) { + return readResponse(&TeeConn{br: r}, req) +} +func ReadResponseTee(tc *TeeConn, req *Request) (*Response, error) { + return readResponse(tc, req) +} +func readResponse(tc *TeeConn, req *Request) (*Response, error) { + r := tc.BufioReader() tp := textproto.NewReader(r) resp := &Response{ Request: req, } + // To extract the raw response through headers, we want to find the offsets + // for where we are at in the io.TeeReader compared to the bufio.Reader + // both at the start of the response parsing, and at the end. + hdrStart := tc.ReadPos() + // Parse the first line of the response. line, err := tp.ReadLine() if err != nil { @@ -202,6 +220,11 @@ func ReadResponse(r *bufio.Reader, req *Request) (*Response, error) { } return resp, err } + // No need to continue tee reads into the tee buffer, go ahead and + // disable it + tc.Disable() + hdrEnd := tc.ReadPos() + resp.HeadersRaw = tc.Bytes(hdrStart, hdrEnd) resp.Header = Header(mimeHeader) fixPragmaCacheControl(resp.Header) diff --git a/lib/http/transport.go b/lib/http/transport.go index 019f86dd..f8cfdf54 100644 --- a/lib/http/transport.go +++ b/lib/http/transport.go @@ -11,6 +11,7 @@ package http import ( "bufio" + "bytes" "compress/gzip" "container/list" "context" @@ -198,6 +199,10 @@ type Transport struct { h2transport *http2Transport // non-nil if http2 wired up // TODO: tunable on max per-host TCP dials in flight (Issue 13957) + + // Enable raw read buffering and raw header extraction + // zgrab2-specific + RawHeaderBuffer bool } // onceSetNextProtoDefaults initializes TLSNextProto. @@ -1027,6 +1032,8 @@ func (t *Transport) dialConn(ctx context.Context, cm connectMethod) (*persistCon pconn.conn = conn } + pconn.tee = &TeeConn{} + // Proxy setup. switch { case cm.proxyURL == nil: @@ -1058,8 +1065,10 @@ func (t *Transport) dialConn(ctx context.Context, cm connectMethod) (*persistCon // Read response. // Okay to use and discard buffered reader here, because // TLS server will not speak until spoken to. - br := bufio.NewReader(conn) - resp, err := ReadResponse(br, connectReq) + tee := TeeConn{ + br: bufio.NewReader(conn), + } + resp, err := ReadResponseTee(&tee, connectReq) if err != nil { conn.Close() return nil, err @@ -1123,13 +1132,49 @@ func (t *Transport) dialConn(ctx context.Context, cm connectMethod) (*persistCon } } - pconn.br = bufio.NewReader(pconn) + pconn.tee.br = bufio.NewReader(pconn) + pconn.tee.enabled = t.RawHeaderBuffer pconn.bw = bufio.NewWriter(persistConnWriter{pconn}) go pconn.readLoop() go pconn.writeLoop() return pconn, nil } +// The underlying br Reader is bufio, so it will perform read-ahead. +// The underlying tb is a bytes buffer, that acts as a tee, receiving +// the raw bytes for reads against the io.Reader backing br. +type TeeConn struct { + enabled bool // tee writes to tb are enabled + tb bytes.Buffer // buffer that tr tees into + br *bufio.Reader // from conn +} + +// To get the current position in tb as seen by the buffered io reader, +// we need to subtract out the buffered portion of the bufio reader. +func (t *TeeConn) ReadPos() int { + l := t.tb.Len() + if l == 0 { + return 0 + } + return l - t.br.Buffered() +} + +func (t *TeeConn) Bytes(s, e int) []byte { + if s >= t.tb.Len() { + return nil + } + return t.tb.Bytes()[s:e] +} + +func (t *TeeConn) BufioReader() *bufio.Reader { + return t.br +} + +// Stops the tee writes to t.tb +func (t *TeeConn) Disable() { + t.enabled = false +} + // persistConnWriter is the io.Writer written to by pc.bw. // It accumulates the number of bytes written to the underlying conn, // so the retry logic can determine whether any bytes made it across @@ -1277,7 +1322,7 @@ type persistConn struct { cacheKey connectMethodKey conn net.Conn tlsState *tls.ConnectionState - br *bufio.Reader // from conn + tee *TeeConn // from conn, includes a raw buffer and tee bw *bufio.Writer // to conn nwrite int64 // bytes written reqch chan requestAndChan // written by roundTrip; read by readLoop @@ -1329,6 +1374,11 @@ func (pc *persistConn) Read(p []byte) (n int, err error) { pc.sawEOF = true } pc.readLimit -= int64(n) + if pc.tee.enabled && n > 0 { + if n, err := pc.tee.tb.Write(p[:n]); err != nil { + return n, err + } + } return } @@ -1482,7 +1532,7 @@ func (pc *persistConn) readLoop() { alive := true for alive { pc.readLimit = pc.maxHeaderResponseSize() - _, err := pc.br.Peek(1) + _, err := pc.tee.br.Peek(1) pc.mu.Lock() if pc.numExpectedResponses == 0 { @@ -1503,7 +1553,7 @@ func (pc *persistConn) readLoop() { closeErr = err } - if err != nil { + if err != nil && (!pc.sawEOF || resp == nil || resp.Status == "") { if pc.readLimit <= 0 { err = fmt.Errorf("net/http: server response headers exceeded %d bytes; aborted", pc.maxHeaderResponseSize()) } @@ -1636,7 +1686,7 @@ func (pc *persistConn) readLoopPeekFailLocked(peekErr error) { if pc.closed != nil { return } - if n := pc.br.Buffered(); n > 0 { + if n := pc.tee.br.Buffered(); n > 0 { } if peekErr == io.EOF { // common case. @@ -1651,12 +1701,15 @@ func (pc *persistConn) readLoopPeekFailLocked(peekErr error) { // trace is optional. func (pc *persistConn) readResponse(rc requestAndChan, trace *httptrace.ClientTrace) (resp *Response, err error) { if trace != nil && trace.GotFirstResponseByte != nil { - if peek, err := pc.br.Peek(1); err == nil && len(peek) == 1 { + if peek, err := pc.tee.br.Peek(1); err == nil && len(peek) == 1 { trace.GotFirstResponseByte() } } - resp, err = ReadResponse(pc.br, rc.req) + resp, err = ReadResponseTee(pc.tee, rc.req) if err != nil { + if err == io.ErrUnexpectedEOF { + pc.sawEOF = true + } return } if rc.continueCh != nil { @@ -1671,7 +1724,7 @@ func (pc *persistConn) readResponse(rc requestAndChan, trace *httptrace.ClientTr } if resp.StatusCode == 100 { pc.readLimit = pc.maxHeaderResponseSize() // reset the limit - resp, err = ReadResponse(pc.br, rc.req) + resp, err = ReadResponseTee(pc.tee, rc.req) if err != nil { return } diff --git a/lib/output/test/process_test.go b/lib/output/test/process_test.go index 26492187..745fa54b 100644 --- a/lib/output/test/process_test.go +++ b/lib/output/test/process_test.go @@ -8,7 +8,6 @@ import ( "testing" "crypto/rsa" - "encoding/asn1" "encoding/base64" "encoding/hex" "math/big" @@ -21,6 +20,7 @@ import ( "os/exec" "github.com/sirupsen/logrus" + "github.com/zmap/zcrypto/encoding/asn1" jsonKeys "github.com/zmap/zcrypto/json" "github.com/zmap/zcrypto/tls" "github.com/zmap/zcrypto/x509" diff --git a/lib/ssh/kex_test.go b/lib/ssh/kex_test.go index 12ca0acd..df15aad3 100644 --- a/lib/ssh/kex_test.go +++ b/lib/ssh/kex_test.go @@ -25,12 +25,12 @@ func TestKexes(t *testing.T) { c := make(chan kexResultErr, 1) var magics handshakeMagics go func() { - r, e := kex.Client(a, rand.Reader, &magics) + r, e := kex.Client(a, rand.Reader, &magics, nil) a.Close() c <- kexResultErr{r, e} }() go func() { - r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"]) + r, e := kex.Server(b, rand.Reader, &magics, testSigners["ecdsa"], nil) b.Close() s <- kexResultErr{r, e} }() diff --git a/lib/ssh/keys_test.go b/lib/ssh/keys_test.go index e9a55d79..7b1202fb 100644 --- a/lib/ssh/keys_test.go +++ b/lib/ssh/keys_test.go @@ -6,7 +6,6 @@ package ssh import ( "bytes" - "crypto/dsa" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" @@ -26,7 +25,7 @@ func rawKey(pub PublicKey) interface{} { case *rsaPublicKey: return (*rsa.PublicKey)(k) case *dsaPublicKey: - return (*dsa.PublicKey)(k) + return (*dsaPublicKey)(k) case *ecdsaPublicKey: return (*ecdsa.PublicKey)(k) case ed25519PublicKey: diff --git a/lib/ssh/messages.go b/lib/ssh/messages.go index a3267448..b72e0af8 100644 --- a/lib/ssh/messages.go +++ b/lib/ssh/messages.go @@ -6,7 +6,9 @@ package ssh import ( "bytes" + "crypto/md5" "encoding/binary" + "encoding/hex" "encoding/json" "errors" "fmt" @@ -84,6 +86,7 @@ type JsonKexInitMsg struct { LanguagesServerClient []string `json:"server_to_client_languages,omitempty"` FirstKexFollows bool `json:"first_kex_follows"` Reserved uint32 `json:"reserved"` + ServerHaSSH string `json:"serverHaSSH"` } func (kex *KexInitMsg) MarshalJSON() ([]byte, error) { @@ -101,10 +104,23 @@ func (kex *KexInitMsg) MarshalJSON() ([]byte, error) { LanguagesServerClient: kex.LanguagesServerClient, FirstKexFollows: kex.FirstKexFollows, Reserved: kex.Reserved, + ServerHaSSH: kex.GenerateServerHaSSH(), } return json.Marshal(temp) } +func (kex *KexInitMsg) GenerateServerHaSSH() string { + input := strings.Join( + []string { + strings.Join(kex.KexAlgos, ","), + strings.Join(kex.CiphersServerClient, ","), + strings.Join(kex.MACsServerClient, ","), + strings.Join(kex.CompressionServerClient, ","), + }, ";") + md5 := md5.Sum([]byte(input)) + return hex.EncodeToString(md5[:]) +} + // See RFC 4253, section 8. // Diffie-Helman diff --git a/lib/ssh/messages_test.go b/lib/ssh/messages_test.go index ae7a7347..985b146b 100644 --- a/lib/ssh/messages_test.go +++ b/lib/ssh/messages_test.go @@ -206,6 +206,29 @@ func TestMarshalMultiTag(t *testing.T) { } } +func TestHaSSH(t *testing.T) { + ki := &KexInitMsg{} + randSource := rand.New(rand.NewSource(0)) + randomBytes(ki.Cookie[:], randSource) + ki.KexAlgos = []string{"curve25519-sha256@libssh.org", "diffie-hellman-group-exchange-sha256", "ecdh-sha2-nistp521", "ecdh-sha2-nistp384", "ecdh-sha2-nistp256", "diffie-hellman-group-exchange-sha1", "diffie-hellman-group1-sha1", "diffie-hellman-group14-sha1", "diffie-hellman-group14-sha256", "diffie-hellman-group15-sha512", "diffie-hellman-group16-sha512", "diffie-hellman-group17-sha512", "diffie-hellman-group18-sha512", "diffie-hellman-group14-sha256@ssh.com", "diffie-hellman-group15-sha256", "diffie-hellman-group15-sha256@ssh.com", "diffie-hellman-group15-sha384@ssh.com", "diffie-hellman-group16-sha256", "diffie-hellman-group16-sha384@ssh.com", "diffie-hellman-group16-sha512@ssh.com", "diffie-hellman-group18-sha512@ssh.com"} + ki.ServerHostKeyAlgos = randomNameList(randSource) + ki.CiphersClientServer = randomNameList(randSource) + ki.CiphersServerClient = []string{"aes128-cbc", "aes128-ctr", "aes192-cbc", "aes192-ctr", "aes256-cbc", "aes256-ctr", "blowfish-cbc", "blowfish-ctr", "cast128-cbc", "cast128-ctr", "idea-cbc", "idea-ctr", "serpent128-cbc", "serpent128-ctr", "serpent192-cbc", "serpent192-ctr", "serpent256-cbc", "serpent256-ctr", "3des-cbc", "3des-ctr", "twofish128-cbc", "twofish128-ctr", "twofish192-cbc", "twofish192-ctr", "twofish256-cbc", "twofish256-ctr", "twofish-cbc", "arcfour", "arcfour128", "arcfour256"} + ki.MACsClientServer = randomNameList(randSource) + ki.MACsServerClient = []string{"hmac-sha1", "hmac-sha1-96", "hmac-md5", "hmac-md5-96", "hmac-sha2-256", "hmac-sha2-512"} + ki.CompressionClientServer = randomNameList(randSource) + ki.CompressionServerClient = []string{"zlib@openssh.com", "zlib", "none"} + ki.LanguagesClientServer = randomNameList(randSource) + ki.LanguagesServerClient = randomNameList(randSource) + ki.FirstKexFollows = true + + hassh := ki.GenerateServerHaSSH() + expected := "8a8ae540028bf433cd68356c1b9e8d5b" + if hassh != expected { + t.Errorf("Unexpected hash. Wanted %s, got %s", expected, hassh) + } +} + func randomBytes(out []byte, rand *rand.Rand) { for i := 0; i < len(out); i++ { out[i] = byte(rand.Int31()) diff --git a/modules/amqp.go b/modules/amqp.go new file mode 100644 index 00000000..48144f69 --- /dev/null +++ b/modules/amqp.go @@ -0,0 +1,7 @@ +package modules + +import "github.com/zmap/zgrab2/modules/amqp091" + +func init() { + amqp091.RegisterModule() +} diff --git a/modules/amqp091/scanner.go b/modules/amqp091/scanner.go new file mode 100644 index 00000000..ce436f9c --- /dev/null +++ b/modules/amqp091/scanner.go @@ -0,0 +1,257 @@ +package amqp091 + +import ( + "fmt" + + "encoding/json" + + amqpLib "github.com/rabbitmq/amqp091-go" + log "github.com/sirupsen/logrus" + "github.com/zmap/zgrab2" +) + +// Flags holds the command-line configuration for the smb scan module. +// Populated by the framework. +type Flags struct { + zgrab2.BaseFlags + + Vhost string `long:"vhost" description:"The vhost to connect to" default:"/"` + AuthUser string `long:"auth-user" description:"Username to use for authentication. Must be used with --auth-pass. No auth is attempted if not provided."` + AuthPass string `long:"auth-pass" description:"Password to use for authentication. Must be used with --auth-user. No auth is attempted if not provided."` + + UseTLS bool `long:"use-tls" description:"Use TLS to connect to the server. Note that AMQPS uses a different default port (5671) than AMQP (5672) and you will need to specify that port manually with -p."` + zgrab2.TLSFlags +} + +// Module implements the zgrab2.Module interface. +type Module struct { +} + +// Scanner implements the zgrab2.Scanner interface. +type Scanner struct { + config *Flags +} + +type connectionTune struct { + ChannelMax int `json:"channel_max"` + FrameMax int `json:"frame_max"` + Heartbeat int `json:"heartbeat"` +} + +// https://www.rabbitmq.com/amqp-0-9-1-reference#connection.start.server-properties +type knownServerProperties struct { + Product string `json:"product"` + Version string `json:"version"` + Platform string `json:"platform"` + Copyright string `json:"copyright"` + Information string `json:"information"` + UnknownProps string `json:"unknown_props"` +} + +// copy known properties, and store unknown properties in serialized json string +// if known properties are not found, set fields to empty strings +func (p *knownServerProperties) populate(props amqpLib.Table) { + if product, ok := props["product"].(string); ok { + p.Product = product + delete(props, "product") + } + if version, ok := props["version"].(string); ok { + p.Version = version + delete(props, "version") + } + if platform, ok := props["platform"].(string); ok { + p.Platform = platform + delete(props, "platform") + } + if copyright, ok := props["copyright"].(string); ok { + p.Copyright = copyright + delete(props, "copyright") + } + if information, ok := props["information"].(string); ok { + p.Information = information + delete(props, "information") + } + + if unknownProps, err := json.Marshal(props); err == nil { + p.UnknownProps = string(unknownProps) + } +} + +type Result struct { + Failure string `json:"failure"` + + VersionMajor int `json:"version_major"` + VersionMinor int `json:"version_minor"` + ServerProperties knownServerProperties `json:"server_properties"` + Locales []string `json:"locales"` + + AuthSuccess bool `json:"auth_success"` + + Tune *connectionTune `json:"tune,omitempty"` + + TLSLog *zgrab2.TLSLog `json:"tls,omitempty"` +} + +// RegisterModule registers the zgrab2 module. +func RegisterModule() { + var module Module + _, err := zgrab2.AddCommand("amqp091", "amqp091", module.Description(), 5672, &module) + if err != nil { + log.Fatal(err) + } +} + +// NewFlags returns a default Flags object. +func (module *Module) NewFlags() interface{} { + return new(Flags) +} + +// NewScanner returns a new Scanner instance. +func (module *Module) NewScanner() zgrab2.Scanner { + return new(Scanner) +} + +// Description returns an overview of this module. +func (module *Module) Description() string { + return "Probe for Advanced Message Queuing Protocol 0.9.1 servers" +} + +// Validate checks that the flags are valid. +// On success, returns nil. +// On failure, returns an error instance describing the error. +func (flags *Flags) Validate(args []string) error { + if flags.AuthUser != "" && flags.AuthPass == "" { + return fmt.Errorf("must provide --auth-pass if --auth-user is set") + } + if flags.AuthPass != "" && flags.AuthUser == "" { + return fmt.Errorf("must provide --auth-user if --auth-pass is set") + } + return nil +} + +// Help returns the module's help string. +func (flags *Flags) Help() string { + return "" +} + +// Init initializes the Scanner. +func (scanner *Scanner) Init(flags zgrab2.ScanFlags) error { + f, ok := flags.(*Flags) + if !ok { + return fmt.Errorf("failed to cast flags to AMQP flags") + } + + scanner.config = f + return nil +} + +// InitPerSender initializes the scanner for a given sender. +func (scanner *Scanner) InitPerSender(senderID int) error { + return nil +} + +// GetName returns the Scanner name defined in the Flags. +func (scanner *Scanner) GetName() string { + return scanner.config.Name +} + +// GetTrigger returns the Trigger defined in the Flags. +func (scanner *Scanner) GetTrigger() string { + return scanner.config.Trigger +} + +// Protocol returns the protocol identifier of the scan. +func (scanner *Scanner) Protocol() string { + return "amqp091" +} + +func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{}, error) { + conn, err := target.Open(&scanner.config.BaseFlags) + if err != nil { + return zgrab2.TryGetScanStatus(err), nil, err + } + + // Setup result and connection cleanup + result := &Result{ + AuthSuccess: false, + } + var tlsConn *zgrab2.TLSConnection + defer func() { + conn.Close() + + if tlsConn != nil { + result.TLSLog = tlsConn.GetLog() + } + }() + + // If we're using TLS, wrap the connection + if scanner.config.UseTLS { + tlsConn, err = scanner.config.TLSFlags.GetTLSConnection(conn) + if err != nil { + return zgrab2.TryGetScanStatus(err), nil, err + } + + if err := tlsConn.Handshake(); err != nil { + return zgrab2.TryGetScanStatus(err), nil, err + } + + conn = tlsConn + } + + // Prepare AMQP connection config + config := amqpLib.Config{ + Vhost: scanner.config.Vhost, + ChannelMax: 0, + FrameSize: 0, + Heartbeat: 0, + } + + // If we have auth credentials, set up PLAIN SASL + if scanner.config.AuthUser != "" && scanner.config.AuthPass != "" { + config.SASL = []amqpLib.Authentication{ + &amqpLib.PlainAuth{ + Username: scanner.config.AuthUser, + Password: scanner.config.AuthPass, + }, + } + } + + // Open the AMQP connection + amqpConn, err := amqpLib.Open(conn, config) + if err != nil { + result.Failure = err.Error() + } + defer amqpConn.Close() + + // If there's an error and we haven't even received START frame from the server, consider it a failure + if err != nil && len(amqpConn.Locales) == 0 { + status := zgrab2.TryGetScanStatus(err) + if status == zgrab2.SCAN_UNKNOWN_ERROR { + // Consider this a protocol error if it's not any of the known network errors + status = zgrab2.SCAN_PROTOCOL_ERROR + } + + return status, nil, err + } + // If amqpConn.Locales has sth, we are (almost) sure that we are talking to an AMQP 091 server, + // therefore the scan is considered successful from this point on. + + // Following is basic server information that can be gathered without authentication + result.VersionMajor = amqpConn.Major + result.VersionMinor = amqpConn.Minor + result.Locales = amqpConn.Locales + result.ServerProperties.populate(amqpConn.Properties) + + // Heuristic to see if we're authenticated. + // These values are expected to be non-zero if and only if a tune is received and we're authenticated. + if err != amqpLib.ErrSASL && err != amqpLib.ErrCredentials && amqpConn.Config.ChannelMax > 0 { + result.AuthSuccess = true + result.Tune = &connectionTune{ + ChannelMax: amqpConn.Config.ChannelMax, + FrameMax: amqpConn.Config.FrameSize, + Heartbeat: int(amqpConn.Config.Heartbeat.Seconds()), + } + } + + return zgrab2.SCAN_SUCCESS, result, nil +} diff --git a/modules/banner/scanner.go b/modules/banner/scanner.go index c658620c..616d1732 100644 --- a/modules/banner/scanner.go +++ b/modules/banner/scanner.go @@ -4,6 +4,11 @@ package banner import ( + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "encoding/base64" + "encoding/hex" "errors" "fmt" "io" @@ -12,7 +17,6 @@ import ( "net" "regexp" "strconv" - "encoding/hex" "github.com/zmap/zgrab2" ) @@ -20,12 +24,16 @@ import ( // Flags give the command-line flags for the banner module. type Flags struct { zgrab2.BaseFlags - Probe string `long:"probe" default:"\\n" description:"Probe to send to the server. Use triple slashes to escape, for example \\\\\\n is literal \\n. Mutually exclusive with --probe-file" ` - ProbeFile string `long:"probe-file" description:"Read probe from file as byte array (hex). Mutually exclusive with --probe"` + Probe string `long:"probe" default:"\\n" description:"Probe to send to the server. Use triple slashes to escape, for example \\\\\\n is literal \\n. Mutually exclusive with --probe-file."` + ProbeFile string `long:"probe-file" description:"Read probe from file as byte array (hex). Mutually exclusive with --probe."` Pattern string `long:"pattern" description:"Pattern to match, must be valid regexp."` - UseTLS bool `long:"tls" description:"Sends probe with TLS connection. Loads TLS module command options. "` + UseTLS bool `long:"tls" description:"Sends probe with TLS connection. Loads TLS module command options."` MaxTries int `long:"max-tries" default:"1" description:"Number of tries for timeouts and connection errors before giving up. Includes making TLS connection if enabled."` - Hex bool `long:"hex" description:"Store banner value in hex. "` + Hex bool `long:"hex" description:"Store banner value in hex. Mutually exclusive with --base64."` + Base64 bool `long:"base64" description:"Store banner value in base64. Mutually exclusive with --hex."` + MD5 bool `long:"md5" description:"Calculate MD5 hash of banner value."` + SHA1 bool `long:"sha1" description:"Calculate SHA1 hash of banner value."` + SHA256 bool `long:"sha256" description:"Calculate SHA256 hash of banner value."` zgrab2.TLSFlags } @@ -42,14 +50,20 @@ type Scanner struct { // ScanResults instances are returned by the module's Scan function. type Results struct { - Banner string `json:"banner,omitempty"` - Length int `json:"length,omitempty"` + Banner string `json:"banner,omitempty"` + Length int `json:"length,omitempty"` + TLSLog *zgrab2.TLSLog `json:"tls,omitempty"` + MD5 string `json:"md5,omitempty"` + SHA1 string `json:"sha1,omitempty"` + SHA256 string `json:"sha25,omitempty"` } +var NoMatchError = errors.New("pattern did not match") + // RegisterModule is called by modules/banner.go to register the scanner. func RegisterModule() { - var module Module - _, err := zgrab2.AddCommand("banner", "Banner", module.Description(), 80, &module) + var m Module + _, err := zgrab2.AddCommand("banner", "Banner", m.Description(), 80, &m) if err != nil { log.Fatal(err) } @@ -61,22 +75,22 @@ func (m *Module) NewFlags() interface{} { } // GetName returns the Scanner name defined in the Flags. -func (scanner *Scanner) GetName() string { - return scanner.config.Name +func (s *Scanner) GetName() string { + return s.config.Name } // GetTrigger returns the Trigger defined in the Flags. -func (scanner *Scanner) GetTrigger() string { - return scanner.config.Trigger +func (s *Scanner) GetTrigger() string { + return s.config.Trigger } // Protocol returns the protocol identifier of the scan. -func (scanner *Scanner) Protocol() string { +func (s *Scanner) Protocol() string { return "banner" } // InitPerSender initializes the scanner for a given sender. -func (scanner *Scanner) InitPerSender(senderID int) error { +func (s *Scanner) InitPerSender(senderID int) error { return nil } @@ -95,7 +109,7 @@ func (f *Flags) Validate(args []string) error { } // Description returns an overview of this module. -func (module *Module) Description() string { +func (m *Module) Description() string { return "Fetch a raw banner by sending a static probe and checking the result against a regular expression" } @@ -105,46 +119,44 @@ func (f *Flags) Help() string { } // Init initializes the Scanner with the command-line flags. -func (scanner *Scanner) Init(flags zgrab2.ScanFlags) error { +func (s *Scanner) Init(flags zgrab2.ScanFlags) error { var err error f, _ := flags.(*Flags) - scanner.config = f - scanner.regex = regexp.MustCompile(scanner.config.Pattern) + s.config = f + if s.config.Pattern != "" { + s.regex = regexp.MustCompile(s.config.Pattern) + } if len(f.ProbeFile) != 0 { - scanner.probe, err = ioutil.ReadFile(f.ProbeFile) + s.probe, err = ioutil.ReadFile(f.ProbeFile) if err != nil { log.Fatal("Failed to open probe file") return zgrab2.ErrInvalidArguments } } else { - strProbe, err := strconv.Unquote(fmt.Sprintf(`"%s"`, scanner.config.Probe)) + strProbe, err := strconv.Unquote(fmt.Sprintf(`"%s"`, s.config.Probe)) if err != nil { panic("Probe error") } - scanner.probe = []byte(strProbe) + s.probe = []byte(strProbe) } - return nil } -var NoMatchError = errors.New("pattern did not match") - -func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{}, error) { - try := 0 +func (s *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{}, error) { var ( conn net.Conn tlsConn *zgrab2.TLSConnection err error - readerr error + readErr error ) - for try < scanner.config.MaxTries { - try++ - conn, err = target.Open(&scanner.config.BaseFlags) + + for try := 0; try < s.config.MaxTries; try++ { + conn, err = target.Open(&s.config.BaseFlags) if err != nil { continue } - if scanner.config.UseTLS { - tlsConn, err = scanner.config.TLSFlags.GetTLSConnection(conn) + if s.config.UseTLS { + tlsConn, err = s.config.TLSFlags.GetTLSConnection(conn) if err != nil { continue } @@ -153,24 +165,24 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter } conn = tlsConn } - break } + + if err != nil { return zgrab2.TryGetScanStatus(err), nil, err } defer conn.Close() - var ret []byte - try = 0 - for try < scanner.config.MaxTries { - try++ - _, err = conn.Write(scanner.probe) - ret, readerr = zgrab2.ReadAvailable(conn) + var data []byte + + for try := 0; try < s.config.MaxTries; try++ { + _, err = conn.Write(s.probe) + data, readErr = zgrab2.ReadAvailable(conn) if err != nil { continue } - if readerr != io.EOF && readerr != nil { + if readErr != io.EOF && readErr != nil { continue } break @@ -178,19 +190,44 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter if err != nil { return zgrab2.TryGetScanStatus(err), nil, err } - if readerr != io.EOF && readerr != nil { - return zgrab2.TryGetScanStatus(readerr), nil, readerr + if readErr != io.EOF && readErr != nil { + return zgrab2.TryGetScanStatus(readErr), nil, readErr } + var results Results - if scanner.config.Hex { - results = Results{Banner: hex.EncodeToString(ret), Length: len(ret)} + + if s.config.Hex { + results.Banner = hex.EncodeToString(data) + } else if s.config.Base64 { + results.Banner = base64.StdEncoding.EncodeToString(data) } else { - results = Results{Banner: string(ret), Length: len(ret)} + results.Banner = string(data) + } + results.Length = len(data) + + if len(data) > 0 { + if s.config.MD5 { + digest := md5.Sum(data) + results.MD5 = hex.EncodeToString(digest[:]) + } + if s.config.SHA1 { + digest := sha1.Sum(data) + results.SHA1 = hex.EncodeToString(digest[:]) + } + if s.config.SHA256 { + digest := sha256.Sum256(data) + results.SHA256 = hex.EncodeToString(digest[:]) + } + } + if tlsConn != nil { + results.TLSLog = tlsConn.GetLog() } - if scanner.regex.Match(ret) { + if s.regex == nil { + return zgrab2.SCAN_SUCCESS, &results, nil + } + if s.regex.Match(data) { return zgrab2.SCAN_SUCCESS, &results, nil } return zgrab2.SCAN_PROTOCOL_ERROR, &results, NoMatchError - } diff --git a/modules/fox/fox.go b/modules/fox/fox.go index a60a4ee4..d80bfa1b 100644 --- a/modules/fox/fox.go +++ b/modules/fox/fox.go @@ -3,10 +3,10 @@ package fox import ( "encoding/hex" "errors" + "io" "net" "strconv" "strings" - "io" "github.com/zmap/zgrab2" ) @@ -63,7 +63,7 @@ func GetFoxBanner(logStruct *FoxLog, connection net.Conn) error { } responseString := string(data) - output := strings.Split(responseString, string(0x0a)) + output := strings.Split(responseString, "\x0a") if strings.HasPrefix(responseString, RESPONSE_PREFIX) { logStruct.IsFox = true diff --git a/modules/fox/log.go b/modules/fox/log.go index 3b8c860c..d715d0ba 100644 --- a/modules/fox/log.go +++ b/modules/fox/log.go @@ -1,5 +1,9 @@ package fox +import ( + "github.com/zmap/zgrab2" +) + // FoxLog is the struct returned to the caller. type FoxLog struct { // IsFox should always be true (otherwise, the result should have been nil). @@ -58,4 +62,6 @@ type FoxLog struct { // AuthAgentType corresponds to the "authAgentTypeSpecs" field. AuthAgentType string `json:"auth_agent_type,omitempty"` + + TLSLog *zgrab2.TLSLog `json:"tls,omitempty"` } diff --git a/modules/fox/scanner.go b/modules/fox/scanner.go index a2ac69cb..a2abf241 100644 --- a/modules/fox/scanner.go +++ b/modules/fox/scanner.go @@ -9,6 +9,7 @@ import ( "errors" log "github.com/sirupsen/logrus" "github.com/zmap/zgrab2" + "net" ) // Flags holds the command-line configuration for the fox scan module. @@ -17,6 +18,8 @@ type Flags struct { zgrab2.BaseFlags Verbose bool `long:"verbose" description:"More verbose logging, include debug fields in the scan results"` + UseTLS bool `long:"use-tls" description:"Sends probe with a TLS connection. Loads TLS module command options."` + zgrab2.TLSFlags } // Module implements the zgrab2.Module interface. @@ -98,12 +101,36 @@ func (scanner *Scanner) Protocol() string { // 4. If the response has the Fox response prefix, mark the scan as having detected the service. // 5. Attempt to read any / all of the data fields from the Log struct func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{}, error) { - conn, err := target.Open(&scanner.config.BaseFlags) + + var ( + conn net.Conn + tlsConn *zgrab2.TLSConnection + err error + ) + + conn, err = target.Open(&scanner.config.BaseFlags) + if scanner.config.UseTLS { + tlsConn, err = scanner.config.TLSFlags.GetTLSConnection(conn) + if err != nil { + return zgrab2.TryGetScanStatus(err), nil, err + } + if err := tlsConn.Handshake(); err != nil { + return zgrab2.TryGetScanStatus(err), nil, err + } + conn = tlsConn + } else { + conn, err = target.Open(&scanner.config.BaseFlags) + } + if err != nil { return zgrab2.TryGetScanStatus(err), nil, err } + defer conn.Close() result := new(FoxLog) + if tlsConn != nil { + result.TLSLog = tlsConn.GetLog() + } err = GetFoxBanner(result, conn) if !result.IsFox { diff --git a/modules/ftp/scanner.go b/modules/ftp/scanner.go index 4ff3ce8b..ce41611b 100644 --- a/modules/ftp/scanner.go +++ b/modules/ftp/scanner.go @@ -216,14 +216,14 @@ func (ftp *Connection) GetFTPSCertificates() error { ftpsReady, err := ftp.SetupFTPS() if err != nil { - return err + return fmt.Errorf("error setting up FTPS: %w", err) } if !ftpsReady { return nil } var conn *zgrab2.TLSConnection if conn, err = ftp.config.TLSFlags.GetTLSConnection(ftp.conn); err != nil { - return err + return fmt.Errorf("error setting up TLS connection: %w", err) } ftp.results.TLSLog = conn.GetLog() @@ -232,25 +232,25 @@ func (ftp *Connection) GetFTPSCertificates() error { // AUTH TLS succeeds, but the handshake fails, dumping // "error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher" // to the socket. - return err + return fmt.Errorf("TLS handshake failed: %w", err) } ftp.conn = conn return nil } // Scan performs the configured scan on the FTP server, as follows: -// * Read the banner into results.Banner (if it is not a 2XX response, bail) -// * If the FTPAuthTLS flag is not set, finish. -// * Send the AUTH TLS command to the server. If the response is not 2XX, then -// send the AUTH SSL command. If the response is not 2XX, then finish. -// * Perform ths TLS handshake / any configured TLS scans, populating -// results.TLSLog. -// * Return SCAN_SUCCESS, &results, nil +// - Read the banner into results.Banner (if it is not a 2XX response, bail) +// - If the FTPAuthTLS flag is not set, finish. +// - Send the AUTH TLS command to the server. If the response is not 2XX, then +// send the AUTH SSL command. If the response is not 2XX, then finish. +// - Perform ths TLS handshake / any configured TLS scans, populating +// results.TLSLog. +// - Return SCAN_SUCCESS, &results, nil func (s *Scanner) Scan(t zgrab2.ScanTarget) (status zgrab2.ScanStatus, result interface{}, thrown error) { var err error conn, err := t.Open(&s.config.BaseFlags) if err != nil { - return zgrab2.TryGetScanStatus(err), nil, err + return zgrab2.TryGetScanStatus(err), nil, fmt.Errorf("error opening connection: %w", err) } cn := conn defer func() { @@ -261,13 +261,13 @@ func (s *Scanner) Scan(t zgrab2.ScanTarget) (status zgrab2.ScanStatus, result in if s.config.ImplicitTLS { tlsConn, err := s.config.TLSFlags.GetTLSConnection(conn) if err != nil { - return zgrab2.TryGetScanStatus(err), nil, err + return zgrab2.TryGetScanStatus(err), nil, fmt.Errorf("error setting up TLS connection: %w", err) } results.ImplicitTLS = true results.TLSLog = tlsConn.GetLog() err = tlsConn.Handshake() if err != nil { - return zgrab2.TryGetScanStatus(err), nil, err + return zgrab2.TryGetScanStatus(err), nil, fmt.Errorf("TLS handshake failed: %w", err) } cn = tlsConn } @@ -275,11 +275,11 @@ func (s *Scanner) Scan(t zgrab2.ScanTarget) (status zgrab2.ScanStatus, result in ftp := Connection{conn: cn, config: s.config, results: results} is200Banner, err := ftp.GetFTPBanner() if err != nil { - return zgrab2.TryGetScanStatus(err), &ftp.results, err + return zgrab2.TryGetScanStatus(err), &ftp.results, fmt.Errorf("error reading FTP banner: %w", err) } if s.config.FTPAuthTLS && is200Banner { if err := ftp.GetFTPSCertificates(); err != nil { - return zgrab2.SCAN_APPLICATION_ERROR, &ftp.results, err + return zgrab2.TryGetScanStatus(err), &ftp.results, fmt.Errorf("error getting FTPS certificates: %w", err) } } return zgrab2.SCAN_SUCCESS, &ftp.results, nil diff --git a/modules/http/http_readlimit_test.go b/modules/http/http_readlimit_test.go index 7ed76caf..90eaaeaf 100644 --- a/modules/http/http_readlimit_test.go +++ b/modules/http/http_readlimit_test.go @@ -13,6 +13,7 @@ import ( "github.com/zmap/zcrypto/tls" "github.com/zmap/zgrab2" + "github.com/zmap/zgrab2/lib/http" ) // BEGIN Taken from handshake_server_test.go -- certs for TLS server @@ -107,7 +108,13 @@ func (cfg *readLimitTestConfig) runFakeHTTPServer(t *testing.T) { } head := "HTTP/1.0 200 OK\r\nBogus-Header: X" + if cfg.customHeader != nil { + head = *cfg.customHeader + } headSuffix := fmt.Sprintf("\r\nContent-Length: %d\r\n\r\n", cfg.bodySize) + if cfg.customSuffix != nil { + headSuffix = *cfg.customSuffix + } size := cfg.headerSize - len(head) - len(headSuffix) if size < 0 { t.Fatalf("Header size %d too small: must be at least %d bytes", cfg.headerSize, len(head)+len(headSuffix)) @@ -191,6 +198,11 @@ type readLimitTestConfig struct { // If set, the error returned by the scan must contain this. expectedError string + + // If set, return a custom header + customHeader *string + + customSuffix *string } const ( @@ -198,6 +210,8 @@ const ( readLimitTestConfigHTTPSBasePort = 0x7bbc ) +func adr(s string) *string {return &s} + var readLimitTestConfigs = map[string]*readLimitTestConfig{ // The socket truncates the connection while reading the body. To the client it looks as if the // server closed the connection prior to sending Content-Length bytes; the result is success, @@ -219,84 +233,140 @@ var readLimitTestConfigs = map[string]*readLimitTestConfig{ // and the truncated body. // maxReadSize > headerSize + bodySize > bodySize > maxBodySize "truncate_body": { - tls: false, - port: readLimitTestConfigHTTPBasePort + 1, - maxBodySize: 2048, - maxReadSize: 8192, - headerSize: 64, - bodySize: 4096, + tls: false, + port: readLimitTestConfigHTTPBasePort + 1, + maxBodySize: 2048, + maxReadSize: 8192, + headerSize: 64, + bodySize: 4096, expectedStatus: zgrab2.SCAN_SUCCESS, }, "tls_truncate_body": { - tls: true, - port: readLimitTestConfigHTTPSBasePort + 1, - maxBodySize: 2048, - maxReadSize: 8192, - headerSize: 64, - bodySize: 4096, + tls: true, + port: readLimitTestConfigHTTPSBasePort + 1, + maxBodySize: 2048, + maxReadSize: 8192, + headerSize: 64, + bodySize: 4096, expectedStatus: zgrab2.SCAN_SUCCESS, }, - // The socket truncates the connection while reading the headers. The result isn't a valid HTTP - // response, so the library returns an unexpected EOF error. + // The socket truncates the connection while reading the headers. The result isn't a completely valid HTTP + // response, but we capture the output regardless // headerSize > maxReadSize "truncate_read_header": { - tls: false, - port: readLimitTestConfigHTTPBasePort + 2, - maxBodySize: 1024, - maxReadSize: 2048, - headerSize: 3072, - bodySize: 8, - expectedError: "unexpected EOF", - expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, + tls: false, + port: readLimitTestConfigHTTPBasePort + 2, + maxBodySize: 1024, + maxReadSize: 2048, + headerSize: 3072, + bodySize: 0, + expectedStatus: zgrab2.SCAN_SUCCESS, }, "tls_truncate_read_header": { - tls: true, - port: readLimitTestConfigHTTPSBasePort + 2, - maxBodySize: 1024, - maxReadSize: 2048, - headerSize: 3072, - bodySize: 8, - expectedError: "unexpected EOF", + tls: true, + port: readLimitTestConfigHTTPSBasePort + 2, + maxBodySize: 1024, + maxReadSize: 2048, + headerSize: 3072, + bodySize: 0, + expectedStatus: zgrab2.SCAN_SUCCESS, + }, + + // The socket truncates the connection while reading the status code. The result isn't a valid HTTP + // response + // headerSize > maxReadSize + "invalid_status_code": { + tls: false, + port: readLimitTestConfigHTTPBasePort + 2, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, + customHeader: adr("HTTP/1.0 200"), + expectedError: "malformed HTTP status code", + expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, + }, + "tls_invalid_status_code": { + tls: true, + port: readLimitTestConfigHTTPSBasePort + 2, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, + customHeader: adr("HTTP/1.0 200"), + expectedError: "malformed HTTP status code", + expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, + }, + + "invalid_no_status": { + tls: false, + port: readLimitTestConfigHTTPBasePort + 2, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, + customHeader: adr(""), + customSuffix: adr(""), + expectedError: "malformed HTTP response", + expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, + }, + + "invalid_response": { + tls: false, + port: readLimitTestConfigHTTPBasePort + 2, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, + customHeader: adr(""), + expectedError: "malformed HTTP response", + expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, + }, + + "invalid_low_read_limit": { + tls: false, + port: readLimitTestConfigHTTPBasePort + 2, + maxBodySize: 8192, + maxReadSize: 1, + headerSize: 1024, + bodySize: 1024, + expectedError: "malformed HTTP response", expectedStatus: zgrab2.SCAN_UNKNOWN_ERROR, }, // Happy case. None of the limits are hit. // maxReadSize >= maxBodySize > bodySize + headerSize "happy_case": { - tls: false, - port: readLimitTestConfigHTTPBasePort + 3, - maxBodySize: 8192, - maxReadSize: 8192, - headerSize: 1024, - bodySize: 1024, + tls: false, + port: readLimitTestConfigHTTPBasePort + 3, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, expectedStatus: zgrab2.SCAN_SUCCESS, }, "tls_happy_case": { - tls: true, - port: readLimitTestConfigHTTPSBasePort + 3, - maxBodySize: 8192, - maxReadSize: 8192, - headerSize: 1024, - bodySize: 1024, + tls: true, + port: readLimitTestConfigHTTPSBasePort + 3, + maxBodySize: 8192, + maxReadSize: 8192, + headerSize: 1024, + bodySize: 1024, expectedStatus: zgrab2.SCAN_SUCCESS, }, } // Try to get the HTTP body from a result; otherwise return the empty string. -func getBody(result interface{}) string { +func getResponse(result interface{}) *http.Response { if result == nil { - return "" + return nil } httpResult, ok := result.(*Results) if !ok { - return "" - } - response := httpResult.Response - if response == nil { - return "" + return nil } - return response.BodyText + return httpResult.Response } // Run a single test with the given configuration. @@ -307,31 +377,43 @@ func (cfg *readLimitTestConfig) runTest(t *testing.T, testName string) { IP: net.ParseIP("127.0.0.1"), } status, ret, err := scanner.Scan(target) + response := getResponse(ret) if status != cfg.expectedStatus { - t.Errorf("Wrong status: expected %s, got %s", cfg.expectedStatus, status) + t.Errorf("Wrong status: expected %s, got %s with %+v", cfg.expectedStatus, status, response) } if err != nil { if !strings.Contains(err.Error(), cfg.expectedError) { - t.Errorf("Wrong error: expected %s, got %s", err.Error(), cfg.expectedError) + t.Errorf("Wrong error: expected %s, got %s", cfg.expectedError, err.Error()) } } else if len(cfg.expectedError) > 0 { t.Errorf("Expected error '%s' but got none", cfg.expectedError) } if cfg.expectedStatus == zgrab2.SCAN_SUCCESS { - body := getBody(ret) - if body == "" { - t.Errorf("Expected success, but got no body") - } else { - if len(body) > cfg.maxBodySize || len(body) > cfg.maxReadSize { - t.Errorf("Body exceeds max size: len(body)=%d; maxBodySize=%d, maxReadSize=%d", len(body), cfg.maxBodySize, cfg.maxReadSize) - } - if !cfg.tls { - if len(body)+cfg.headerSize > cfg.maxReadSize { - t.Errorf("Body and header exceed max read size: len(body)=%d, headerSize=%d, maxReadSize=%d", len(body), cfg.headerSize, cfg.maxReadSize) - } - } + if response == nil { + t.Errorf("Expected response, but got none") + } + + statusCode := response.Status + if statusCode != "200 OK" { + t.Errorf("Expected status %s, but got %s", "200 OK", statusCode) + } + + body := response.BodyText + if body == "" { + if cfg.bodySize != 0 { + t.Errorf("Expected success, but got no body") + } + } else { + if len(body) > cfg.maxBodySize || len(body) > cfg.maxReadSize { + t.Errorf("Body exceeds max size: len(body)=%d; maxBodySize=%d, maxReadSize=%d", len(body), cfg.maxBodySize, cfg.maxReadSize) + } + if !cfg.tls { + if len(body)+cfg.headerSize > cfg.maxReadSize { + t.Errorf("Body and header exceed max read size: len(body)=%d, headerSize=%d, maxReadSize=%d", len(body), cfg.headerSize, cfg.maxReadSize) + } } + } } } diff --git a/modules/http/scanner.go b/modules/http/scanner.go index 4f701929..719b7491 100644 --- a/modules/http/scanner.go +++ b/modules/http/scanner.go @@ -70,7 +70,8 @@ type Flags struct { CustomHeadersValues string `long:"custom-headers-values" description:"CSV of custom HTTP header values to send to server. Should match order of custom-headers-names."` CustomHeadersDelimiter string `long:"custom-headers-delimiter" description:"Delimiter for customer header name/value CSVs"` // Set HTTP Request body - RequestBody string `long:"request-body" description:"HTTP request body to send to server"` + RequestBody string `long:"request-body" description:"HTTP request body to send to server"` + RequestBodyHex string `long:"request-body-hex" description:"HTTP request body to send to server"` OverrideSH bool `long:"override-sig-hash" description:"Override the default SignatureAndHashes TLS option with more expansive default"` @@ -80,6 +81,9 @@ type Flags struct { // WithBodyLength enables adding the body_size field to the Response WithBodyLength bool `long:"with-body-size" description:"Enable the body_size attribute, for how many bytes actually read"` + + // Extract the raw header as it is on the wire + RawHeaders bool `long:"raw-headers" description:"Extract raw response up through headers"` } // A Results object is returned by the HTTP module's Scanner.Scan() @@ -456,6 +460,7 @@ func (scanner *Scanner) newHTTPScan(t *zgrab2.ScanTarget, useHTTPS bool) *scan { DisableKeepAlives: false, DisableCompression: false, MaxIdleConnsPerHost: scanner.config.MaxRedirects, + RawHeaderBuffer: scanner.config.RawHeaders, }, client: http.MakeNewClient(), globalDeadline: time.Now().Add(scanner.config.Timeout), @@ -492,6 +497,9 @@ func (scan *scan) Grab() *zgrab2.ScanError { ) if len(scan.scanner.config.RequestBody) > 0 { request, err = http.NewRequest(scan.scanner.config.Method, scan.url, strings.NewReader(scan.scanner.config.RequestBody)) + } else if len(scan.scanner.config.RequestBodyHex) > 0 { + reqbody, _ := hex.DecodeString(scan.scanner.config.RequestBodyHex) + request, err = http.NewRequest(scan.scanner.config.Method, scan.url, bytes.NewReader(reqbody)) } else { request, err = http.NewRequest(scan.scanner.config.Method, scan.url, nil) } diff --git a/modules/mssql/scanner.go b/modules/mssql/scanner.go index 708fa96c..2fbd9f7c 100644 --- a/modules/mssql/scanner.go +++ b/modules/mssql/scanner.go @@ -19,7 +19,7 @@ import ( ) // ScanResults contains detailed information about each step of the -// MySQL handshake, and can be encoded to JSON. +// MSSQL handshake, and can be encoded to JSON. type ScanResults struct { // Version is the version returned by the server in the PRELOGIN response. // Its format is "MAJOR.MINOR.BUILD_NUMBER". diff --git a/modules/pop3/scanner.go b/modules/pop3/scanner.go index a85d2d83..47d5387b 100644 --- a/modules/pop3/scanner.go +++ b/modules/pop3/scanner.go @@ -27,7 +27,6 @@ package pop3 import ( "fmt" - "errors" "strings" log "github.com/sirupsen/logrus" @@ -170,14 +169,15 @@ func VerifyPOP3Contents(banner string) zgrab2.ScanStatus { case strings.HasPrefix(banner, "-ERR "): return zgrab2.SCAN_APPLICATION_ERROR case strings.HasPrefix(banner, "+OK "), - strings.Contains(banner, "POP3"), - // These are rare for POP3 if they happen at all, - // But it won't hurt to check just in case as a backup - strings.Contains(lowerBanner, "blacklist"), - strings.Contains(lowerBanner, "abuse"), - strings.Contains(lowerBanner, "rbl"), - strings.Contains(lowerBanner, "spamhaus"), - strings.Contains(lowerBanner, "relay"): + banner == "+OK\r\n", + strings.Contains(banner, "POP3"), + // These are rare for POP3 if they happen at all, + // But it won't hurt to check just in case as a backup + strings.Contains(lowerBanner, "blacklist"), + strings.Contains(lowerBanner, "abuse"), + strings.Contains(lowerBanner, "rbl"), + strings.Contains(lowerBanner, "spamhaus"), + strings.Contains(lowerBanner, "relay"): return zgrab2.SCAN_SUCCESS default: return zgrab2.SCAN_PROTOCOL_ERROR @@ -185,16 +185,16 @@ func VerifyPOP3Contents(banner string) zgrab2.ScanStatus { } // Scan performs the POP3 scan. -// 1. Open a TCP connection to the target port (default 110). -// 2. If --pop3s is set, perform a TLS handshake using the command-line -// flags. -// 3. Read the banner. -// 4. If --send-help is sent, send HELP, read the result. -// 5. If --send-noop is sent, send NOOP, read the result. -// 6. If --starttls is sent, send STLS, read the result, negotiate a -// TLS connection using the command-line flags. -// 7. If --send-quit is sent, send QUIT and read the result. -// 8. Close the connection. +// 1. Open a TCP connection to the target port (default 110). +// 2. If --pop3s is set, perform a TLS handshake using the command-line +// flags. +// 3. Read the banner. +// 4. If --send-help is sent, send HELP, read the result. +// 5. If --send-noop is sent, send NOOP, read the result. +// 6. If --starttls is sent, send STLS, read the result, negotiate a +// TLS connection using the command-line flags. +// 7. If --send-quit is sent, send QUIT and read the result. +// 8. Close the connection. func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{}, error) { c, err := target.Open(&scanner.config.BaseFlags) if err != nil { @@ -222,7 +222,7 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter // OR save it to return later sr := VerifyPOP3Contents(banner) if sr == zgrab2.SCAN_PROTOCOL_ERROR { - return sr, nil, errors.New("Invalid response for POP3") + return sr, nil, fmt.Errorf("Invalid POP3 banner: %s", banner) } result.Banner = banner if scanner.config.SendHELP { diff --git a/modules/redis/types_test.go b/modules/redis/types_test.go index 53abe002..fcd4db69 100644 --- a/modules/redis/types_test.go +++ b/modules/redis/types_test.go @@ -3,9 +3,11 @@ package redis import ( "bytes" "fmt" + "net" "reflect" "strings" "testing" + "time" ) // fakeIO is a simple fake Reader/Writer. Read pulls data from the output @@ -44,6 +46,41 @@ func (fakeio *fakeIO) Provide(buf []byte) { }() } +func (fakeio *fakeIO) Close() error { + return nil +} + +func (fakeio *fakeIO) LocalAddr() net.Addr { + return fakeAddr{} +} + +func (fakeio *fakeIO) RemoteAddr() net.Addr { + return fakeAddr{} +} + +func (fakeio *fakeIO) SetDeadline(t time.Time) error { + return nil +} + +func (fakeio *fakeIO) SetReadDeadline(t time.Time) error { + return nil +} + +func (fakeio *fakeIO) SetWriteDeadline(t time.Time) error { + return nil +} + +// A fake net.Addr +type fakeAddr struct{} + +func (f fakeAddr) Network() string { + return "tcp" +} + +func (f fakeAddr) String() string { + return "127.0.0.1" +} + var bigSimpleString = strings.Repeat("simple,", 1024*1024) var bigBulkString = "--- BEGIN BULK STRING ---\r\n" + bigSimpleString + "\r\n--- END BULK STRING---\r\n" @@ -78,29 +115,29 @@ var integers = map[int64]string{ // redisErrors maps error strings to their encoding var redisErrors = map[string]string{ - "": "-\r\n", + "": "-\r\n", "ERR something went wrong": "-ERR something went wrong\r\n", "singleword": "-singleword\r\n", } // redisErrors maps error strings to their prefixes var redisErrorPrefixes = map[string]string{ - "": "", + "": "", "ERR something went wrong": "ERR", "singleword": "singleword", } // redisErrorMessages maps error strings to their "messages" var redisErrorMessages = map[string]string{ - "": "", + "": "", "ERR something went wrong": "something went wrong", "singleword": "singleword", } // redisArrays maps encoded array values to the corresponding array (Note: reverse key/value order from other maps) var redisArrays = map[string]RedisArray{ - "*0\r\n": RedisArray{}, - "*1\r\n+\r\n": RedisArray{SimpleString("")}, + "*0\r\n": RedisArray{}, + "*1\r\n+\r\n": RedisArray{SimpleString("")}, "*2\r\n*1\r\n*0\r\n*1\r\n$5\r\n12345\r\n": RedisArray{RedisArray{RedisArray{}}, RedisArray{BulkString("12345")}}, "*5\r\n" + "+simpleString\r\n" + diff --git a/modules/siemens/s7.go b/modules/siemens/s7.go index d1ebb689..a08194c4 100644 --- a/modules/siemens/s7.go +++ b/modules/siemens/s7.go @@ -3,11 +3,21 @@ package siemens import ( "bytes" "encoding/binary" + "fmt" "net" "github.com/zmap/zgrab2" ) +const s7ModuleIdRecordSize = 28 +const ( + s7ModuleIdModuleIndex = 0x1 + s7ModuleIdHardwareIndex = 0x6 + s7ModuleIdFirmwareIndex = 0x7 +) + +const uint16Size = 2 + // ReconnectFunction is used to re-connect to the target to re-try the scan with a different TSAP destination. type ReconnectFunction func() (net.Conn, error) @@ -59,7 +69,7 @@ func GetS7Banner(logStruct *S7Log, connection net.Conn, reconnect ReconnectFunct if err != nil { return err } - parseModuleIdentificatioNRequest(logStruct, &moduleIdentificationResponse) + parseModuleIdentificationRequest(logStruct, &moduleIdentificationResponse) // Make Component Identification request componentIdentificationResponse, err := readRequest(connection, S7_SZL_COMPONENT_IDENTIFICATION) @@ -257,24 +267,81 @@ func parseComponentIdentificationResponse(logStruct *S7Log, s7Packet *S7Packet) return nil } -func parseModuleIdentificatioNRequest(logStruct *S7Log, s7Packet *S7Packet) error { +// moduleIDData represents the data structure of the system status list. +// See https://cache.industry.siemens.com/dl/files/574/1214574/att_44504/v1/SFC_e.pdf +// 33.5 SSL-ID W#16#xy11 - Module Identification +type moduleIDData struct { + Index uint16 // Index of an identification data record + MIFB string // 20 bytes string + BGTyp uint16 // Reserved, 1 word + Ausbg1 uint16 // Version of the module, 1 word + Ausbg2 uint16 // Remaining numbers of the version ID, 1 word +} + +// parseModuleIDDataRecord parses a byte slice into a DataRecord. +func parseModuleIDDataRecord(data []byte) (*moduleIDData, error) { + if len(data) < 28 { + return nil, fmt.Errorf("data slice too short to contain a valid DataRecord") + } + + return &moduleIDData{ + Index: binary.BigEndian.Uint16(data[:2]), + MIFB: string(data[2:22]), + BGTyp: binary.BigEndian.Uint16(data[22:24]), + Ausbg1: binary.BigEndian.Uint16(data[24:26]), + Ausbg2: binary.BigEndian.Uint16(data[26:28]), + }, nil +} + +// Constructs the version number from a moduleIDData record. +func getVersionNumber(record *moduleIDData) string { + // The major, minor, and patch versions are stored in the lower 8 bits of Ausbg1, + // the upper 8 bits of Ausbg2, and the lower 8 bits of Ausbg2, respectively. + major := record.Ausbg1 & 0xFF + minor := record.Ausbg2 >> 8 + patch := record.Ausbg2 & 0xFF + + return fmt.Sprintf("%d.%d.%d", major, minor, patch) +} + +func parseModuleIdentificationRequest(logStruct *S7Log, s7Packet *S7Packet) error { if len(s7Packet.Data) < S7_DATA_BYTE_OFFSET { return errS7PacketTooShort } - fields := bytes.FieldsFunc(s7Packet.Data[S7_DATA_BYTE_OFFSET:], func(c rune) bool { - return int(c) == 0 - }) + // Skip the first 4 bytes (return code, transport size, length) + // And the next 4 bytes (SSLID, INDEX) + offset := 8 - for i := len(fields) - 1; i >= 0; i-- { - switch i { - case 0: - logStruct.ModuleId = string(fields[i][1:]) // exclude index byte - case 5: - logStruct.Hardware = string(fields[i][1:]) - case 6: - logStruct.Firmware = string(fields[i][1:]) + // Parse LENTHDR and N_DR from the header + recordLen := int(binary.BigEndian.Uint16(s7Packet.Data[offset : offset+2])) + offset += uint16Size + + numRecords := int(binary.BigEndian.Uint16(s7Packet.Data[offset : offset+2])) + offset += uint16Size + + // Check if the data record length and number of data records are valid + if recordLen != s7ModuleIdRecordSize || numRecords*recordLen > len(s7Packet.Data)-offset { + return fmt.Errorf("invalid data record length or number of data records") + } + + // Now parse the data records, considering each one is 28 bytes long after the header + for i := 0; i < int(numRecords); i++ { + record, err := parseModuleIDDataRecord(s7Packet.Data[offset : offset+recordLen]) + if err != nil { + return fmt.Errorf("failed parsing data record %d: %v", i, err) } + + switch record.Index { + case s7ModuleIdModuleIndex: + logStruct.ModuleId = record.MIFB + case s7ModuleIdHardwareIndex: + logStruct.Hardware = getVersionNumber(record) + case s7ModuleIdFirmwareIndex: + logStruct.Firmware = getVersionNumber(record) + } + + offset += recordLen } return nil diff --git a/output.json b/output.json new file mode 100644 index 00000000..a2108239 --- /dev/null +++ b/output.json @@ -0,0 +1 @@ +{"ip":"165.227.114.176","data":{"amqp091":{"status":"success","protocol":"amqp091","result":{"failure":"Exception (403) Reason: \"SASL could not negotiate a shared mechanism\"","version_major":0,"version_minor":9,"server_properties":{"product":"RabbitMQ","version":"3.8.16","platform":"Erlang/OTP 24.0.2","copyright":"Copyright (c) 2007-2021 VMware, Inc. or its affiliates.","information":"Licensed under the MPL 2.0. Website: https://rabbitmq.com","unknown_props":"{\"capabilities\":{\"authentication_failure_close\":true,\"basic.nack\":true,\"connection.blocked\":true,\"consumer_cancel_notify\":true,\"consumer_priorities\":true,\"direct_reply_to\":true,\"exchange_exchange_bindings\":true,\"per_consumer_qos\":true,\"publisher_confirms\":true},\"cluster_name\":\"speedy-red-elephant\"}"},"locales":["en_US"],"auth_success":false,"tls":{"handshake_log":{"server_hello":{"version":{"name":"TLSv1.2","value":771},"random":"ZkReGV9XxyHJdhvR5YvbXWoxZaqOD+F7RE9XTkdSRAE=","session_id":"ienBC9iUZ0TDvYsQK4E3wAhhGPds9QyKfK2+8ZHH10E=","cipher_suite":{"hex":"0xC02F","name":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","value":49199},"compression_method":0,"ocsp_stapling":false,"ticket":false,"secure_renegotiation":true,"heartbeat":false,"extended_master_secret":false},"server_certificates":{"certificate":{"raw":"MIIFDzCCA/egAwIBAgISBAameeroCAfXEX+P6HjPx4o3MA0GCSqGSIb3DQEBCwUAMDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQDEwJSMzAeFw0yNDA0MTkwOTA0MTNaFw0yNDA3MTgwOTA0MTJaMB8xHTAbBgNVBAMMFCoucm1xMi5jbG91ZGFtcXAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvzm4SlktbWfAFiUh5x1gHz0ZwocaIrcWlsRNk5iYP33NvQmFNAwv5kGq//BDU62IIEaRvKlXOMvn+1e62TSwQ65RUYpZRlHAOJ64+64adfiGUrIvif2i0VaK5kQrbsPzlm50GNKU3AJtD30bQZnAsrguudGWp8XrHz7smc/+oSiP2TfU0pWyZh94mtx18xMRRBGRCkSY3GiMWHO0zRUVpH0Rdh0U40SdMfqUCOaIo8hEM6q1qmECvm4hAtlqKpW3bvDKFQytb/jqgWomuqQ4TyLL/4In7Ecac01bxrMpUglM18mSNdXfRdrzWMKRb7i8sTsRX9MxhmHJNErDpT5nEwIDAQABo4ICMDCCAiwwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBTM/XXvsow84DPre+rCCefZyorEODAfBgNVHSMEGDAWgBQULrMXt1hWy65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iub3JnLzA4BgNVHREEMTAvghcqLmluLnJtcTIuY2xvdWRhbXFwLmNvbYIUKi5ybXEyLmNsb3VkYW1xcC5jb20wEwYDVR0gBAwwCjAIBgZngQwBAgEwggEFBgorBgEEAdZ5AgQCBIH2BIHzAPEAdwBIsONr2qZHNA/lagL6nTDrHFIBy1bdLIHZu7+rOdiEcwAAAY710E/6AAAEAwBIMEYCIQCU6Hlu2rXR9kA1JVGA/tT6h9cs10zJ5jKmpQkDd/NakQIhAK3MKAvRLe+C1qmS9E/BJV1wcsV2VDhXSFzKTQx7VpafAHYAGZgQcQnw1lIuMIDSnj9ku4NuKMz5D1KO7t/OSj8WtMoAAAGO9dBQdgAABAMARzBFAiEAvjIwxkWSNlmj3V5vz5RC9gNeryKRVMSANdcRu4bml7ACIDqzkLl38EdQKxqY1sNLEo9GCpoKoQwxJ/PUo1avmj2lMA0GCSqGSIb3DQEBCwUAA4IBAQB/WnVLyFClipmQTP/5cnkwx5vPK2ijc745zNX16CCdoOEnUKOsQkOKhv/7v4/Hl61BIj/sDb+jlxlbN07Uzbsd54fha/KPcwSnVEgOwuPVA4ruYPRhfPrU4zSCeMp0i0LdbsFMVNRaXIfsQvWGRhlEmmL3i8FTDUV4cWQRvK6U80sCwxyWhkKckvT2qOnjjL2iL16zEJkhIfQ68rFr0lUrpb7Jh6hWonUHQxA4j6/jM0Ath+haBudjH4HqcR/gsAXK5sw7n9vVcFPv74dO0xqJN7q6Erouzht4tfvZxfkVItVzo30SQ7FzGBYCwUT839mhPElCRVTbdp6gvJw6K8sk","parsed":{"version":3,"serial_number":"350712122808254062432312023692293498702391","signature_algorithm":{"name":"SHA256-RSA","oid":"1.2.840.113549.1.1.11"},"issuer":{"common_name":["R3"],"country":["US"],"organization":["Let's Encrypt"]},"issuer_dn":"C=US, O=Let's Encrypt, CN=R3","validity":{"start":"2024-04-19T09:04:13Z","end":"2024-07-18T09:04:12Z","length":7775999},"subject":{"common_name":["*.rmq2.cloudamqp.com"]},"subject_dn":"CN=*.rmq2.cloudamqp.com","subject_key_info":{"key_algorithm":{"name":"RSA"},"rsa_public_key":{"exponent":65537,"modulus":"vzm4SlktbWfAFiUh5x1gHz0ZwocaIrcWlsRNk5iYP33NvQmFNAwv5kGq//BDU62IIEaRvKlXOMvn+1e62TSwQ65RUYpZRlHAOJ64+64adfiGUrIvif2i0VaK5kQrbsPzlm50GNKU3AJtD30bQZnAsrguudGWp8XrHz7smc/+oSiP2TfU0pWyZh94mtx18xMRRBGRCkSY3GiMWHO0zRUVpH0Rdh0U40SdMfqUCOaIo8hEM6q1qmECvm4hAtlqKpW3bvDKFQytb/jqgWomuqQ4TyLL/4In7Ecac01bxrMpUglM18mSNdXfRdrzWMKRb7i8sTsRX9MxhmHJNErDpT5nEw==","length":2048},"fingerprint_sha256":"760c92c9f2b79f1eb9ae2dcf33a08699de785fd394ba9177ed3cb5f962a81ce9"},"extensions":{"key_usage":{"digital_signature":true,"key_encipherment":true,"value":5},"basic_constraints":{"is_ca":false},"subject_alt_name":{"dns_names":["*.in.rmq2.cloudamqp.com","*.rmq2.cloudamqp.com"]},"authority_key_id":"142eb317b75856cbae500940e61faf9d8b14c2c6","subject_key_id":"ccfd75efb28c3ce033eb7beac209e7d9ca8ac438","extended_key_usage":{"server_auth":true,"client_auth":true},"certificate_policies":[{"id":"2.23.140.1.2.1"}],"authority_info_access":{"ocsp_urls":["http://r3.o.lencr.org"],"issuer_urls":["http://r3.i.lencr.org/"]},"signed_certificate_timestamps":[{"version":0,"log_id":"SLDja9qmRzQP5WoC+p0w6xxSActW3SyB2bu/qznYhHM=","timestamp":1713521053,"signature":"BAMASDBGAiEAlOh5btq10fZANSVRgP7U+ofXLNdMyeYypqUJA3fzWpECIQCtzCgL0S3vgtapkvRPwSVdcHLFdlQ4V0hcyk0Me1aWnw=="},{"version":0,"log_id":"GZgQcQnw1lIuMIDSnj9ku4NuKMz5D1KO7t/OSj8WtMo=","timestamp":1713521053,"signature":"BAMARzBFAiEAvjIwxkWSNlmj3V5vz5RC9gNeryKRVMSANdcRu4bml7ACIDqzkLl38EdQKxqY1sNLEo9GCpoKoQwxJ/PUo1avmj2l"}]},"signature":{"signature_algorithm":{"name":"SHA256-RSA","oid":"1.2.840.113549.1.1.11"},"value":"f1p1S8hQpYqZkEz/+XJ5MMebzytoo3O+OczV9eggnaDhJ1CjrEJDiob/+7+Px5etQSI/7A2/o5cZWzdO1M27HeeH4Wvyj3MEp1RIDsLj1QOK7mD0YXz61OM0gnjKdItC3W7BTFTUWlyH7EL1hkYZRJpi94vBUw1FeHFkEbyulPNLAsMcloZCnJL09qjp44y9oi9esxCZISH0OvKxa9JVK6W+yYeoVqJ1B0MQOI+v4zNALYfoWgbnYx+B6nEf4LAFyubMO5/b1XBT7++HTtMaiTe6uhK6Ls4beLX72cX5FSLVc6N9EkOxcxgWAsFE/N/ZoTxJQkVU23aeoLycOivLJA==","valid":false,"self_signed":false},"fingerprint_md5":"50d77a385bb3556dd99074550ea0f664","fingerprint_sha1":"8e85228d704ac0972817d43f5f0f22264e2e7654","fingerprint_sha256":"eda0b0b8a9c28fbbeac1781eb1a8fa49df8480befefa1654cfcebcd7cf3d0891","tbs_noct_fingerprint":"da8a7597d6f3e3ad6a584804f7146a9e38cbd4189035612946b0b2bafe2ce192","spki_subject_fingerprint":"9a3ae45305db9efc51adaddf15ed499f9ef338706c9f9c3d84be359c1ede3305","tbs_fingerprint":"766514440cf4512aeaf14e153dd4acf143f1cf5fa5a7f36a9c02e6c7ba9a85fb","validation_level":"DV","names":["*.in.rmq2.cloudamqp.com","*.rmq2.cloudamqp.com"],"redacted":false}},"chain":[{"raw":"MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAwTzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAwWhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3MgRW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cPR5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdxsxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8ZutmNHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxgZ3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaAFHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcwAoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRwOi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQBgt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6WPTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wlikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQzCkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BImlJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1OyK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90IdshCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6ZvMldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqXnLRbwHOoq7hHwg==","parsed":{"version":3,"serial_number":"192961496339968674994309121183282847578","signature_algorithm":{"name":"SHA256-RSA","oid":"1.2.840.113549.1.1.11"},"issuer":{"common_name":["ISRG Root X1"],"country":["US"],"organization":["Internet Security Research Group"]},"issuer_dn":"C=US, O=Internet Security Research Group, CN=ISRG Root X1","validity":{"start":"2020-09-04T00:00:00Z","end":"2025-09-15T16:00:00Z","length":158774400},"subject":{"common_name":["R3"],"country":["US"],"organization":["Let's Encrypt"]},"subject_dn":"C=US, O=Let's Encrypt, CN=R3","subject_key_info":{"key_algorithm":{"name":"RSA"},"rsa_public_key":{"exponent":65537,"modulus":"uwIVKMz2oJTTDxLsjVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKpTm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnBU840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1RoYvbFQ==","length":2048},"fingerprint_sha256":"8d02536c887482bc34ff54e41d2ba659bf85b341a0a20afadb5813dcfbcf286d"},"extensions":{"key_usage":{"digital_signature":true,"certificate_sign":true,"crl_sign":true,"value":97},"basic_constraints":{"is_ca":true,"max_path_len":0},"crl_distribution_points":["http://x1.c.lencr.org/"],"authority_key_id":"79b459e67bb6e5e40173800888c81a58f6e99b6e","subject_key_id":"142eb317b75856cbae500940e61faf9d8b14c2c6","extended_key_usage":{"server_auth":true,"client_auth":true},"certificate_policies":[{"id":"2.23.140.1.2.1"},{"id":"1.3.6.1.4.1.44947.1.1.1"}],"authority_info_access":{"issuer_urls":["http://x1.i.lencr.org/"]}},"signature":{"signature_algorithm":{"name":"SHA256-RSA","oid":"1.2.840.113549.1.1.11"},"value":"hcpORz6j94VEhbzVZ3iymGOtdU0elj0zZXJULYGg6sPt+CC/X8y3cAC3bjv2XpTe5CCfpu+LsgPnorUWPJHOtO05Aud8JYpH5mVuP0b02fDOlCvuVM4SvIwnS7jBmC+ir81xkUoIt8i4I3sELQj5CFc+g9kEMwpHIXgJgifDKsibuc5c8mTIwL55wE+ObUQMXpK7LveLEOHoHUQp21kg7WO5IfgSJpSTV6AdZQTBCiKuEA1Dl6EYH37g4IY3tVqxvTC/h24rKv8hThsFw/UYl/BerMOluGrwLrw7M7nuS97M/OSvhAuGP8BVQzb2aOE2F2qOmdH/pUCnNLfA0GM5NTl1bvK6dsiTAumpS2wXzgwC2b2B+5+3aNQGZbOCPXdT+I55A60KMQd1KkPYVZdyxCkO98RdTsiuRoQw1/KFXxihebvnXnCLB+GGk8O5j9xhcSUqr9/tJVBSaIuS3OXWtePafdCHbIQhMa6C9fu5q8iJFz3hTOU4Dva9K72WgRTr1ds9IKd+WdPi+Fj5W7hIzf5cTxYp/h5VI6/IEbCN6nyTkBcv/ayiCUdGP/DpsLf/KE1oMtZnXh5po5O49Z2LLwvSUkOmbzJXZU0ygd84U4Vdfl1mKeq43eSVtc21VhJCzcROxiU4RFBt7M4AVRj+6Ulk1E7Kl5y0W8BzqKu4R8I=","valid":false,"self_signed":false},"fingerprint_md5":"e829e65d7c4307d6fbc13c179e037a36","fingerprint_sha1":"a053375bfe84e8b748782c7cee15827a6af5a405","fingerprint_sha256":"67add1166b020ae61b8f5fc96813c04c2aa589960796865572a3c7e737613dfd","tbs_noct_fingerprint":"444ebd67bb83f8807b3921e938ac9178b882bd50aadb11231f044cf5f08df7ce","spki_subject_fingerprint":"390bc358202771a65e7be7a87924d7f2a079de04feb5ffd4163fae4fbf9b11e9","tbs_fingerprint":"444ebd67bb83f8807b3921e938ac9178b882bd50aadb11231f044cf5f08df7ce","validation_level":"DV","redacted":false}}],"validation":{"browser_trusted":false,"browser_error":"x509: failed to load system roots and no roots provided"}},"server_key_exchange":{"ecdh_params":{"curve_id":{"name":"secp256r1","id":23},"server_public":{"x":{"value":"nfV5Z/BX7NG6WAK+7CohY1MI1m76yGrhm3/omzRkRJc=","length":256},"y":{"value":"thOt8w1Yaw5zhmo9+NS8PgjHdlMMPn8Zl1aLvwC7z50=","length":256}}},"digest":"zsHfGj/e8lFwyqqn61neIIhm25oyABuTofdOq4bdi8s=","signature":{"raw":"E+2Fz4oduylrlhqaLHqImJ5IuJ3/RQwyENA9q+o6U9VQsfXvbRw/4ndY5zfyypoFjzOoGRc0Dhx8nz8T4zqui0SPgChSTzCStt1KIfvaVIHWntVa5uWODCjgorji9b4XCrh4hszutMzeV8NXlMMIerTiluTEAiYlsACgArPG0YFoyBLb6ohDTKGeaEq296DxRCaJI1jNfRwbY9z+EBmlfaekjPucPcjnzlEAhMsPlrzEzHPEg8XkGBPGYcadHSbl/9CqOMGws7acR1JTyJAtyKVaJkauZorzsGSN5ZW2lEF/2eqTBal0431dNygx4nuoz1CpqGfAamQbqnLAbTPDZQ==","type":"rsa","valid":true,"signature_and_hash_type":{"signature_algorithm":"rsa","hash_algorithm":"sha256"},"tls_version":{"name":"TLSv1.2","value":771}}},"client_key_exchange":{"ecdh_params":{"curve_id":{"name":"secp256r1","id":23},"client_public":{"x":{"value":"FphxrWdXsuFxMSAu4nK1QkL5gmakbxp3ZFoVgoDKiyk=","length":256},"y":{"value":"n4YXrWbOELzor2eB9sddXjeRmzF8t1++mYnI9yWIe0k=","length":256}},"client_private":{"value":"aD2Kcjp9xdUNcx+j5N7NXxlvxBKFj1vAVc3pnXt7B04=","length":32}}},"client_finished":{"verify_data":"ZwBhDZRd2iJW/Dmf"},"server_finished":{"verify_data":"CIXmEd1/E8gMxmNi"},"key_material":{"master_secret":{"value":"+ZA70wONtgCIJMTd+oATK8EkbqXZLeEV0kv0iGMKmmM6R9BgQlFoYlr6LDTKdG0w","length":48},"pre_master_secret":{"value":"sxkQa0ePkbyP4un9hzAF+jJuLP4XExZq3QC5HjeIQek=","length":32}}}}},"timestamp":"2024-05-15T00:02:49-07:00"}}} diff --git a/processing.go b/processing.go index 3bade603..bcde63f0 100644 --- a/processing.go +++ b/processing.go @@ -13,6 +13,7 @@ import ( // Grab contains all scan responses for a single host type Grab struct { IP string `json:"ip,omitempty"` + Port uint `json:"port,omitempty"` Domain string `json:"domain,omitempty"` Data map[string]ScanResponse `json:"data,omitempty"` } @@ -117,12 +118,16 @@ func (target *ScanTarget) OpenUDP(flags *BaseFlags, udp *UDPFlags) (net.Conn, er // scan responses. func BuildGrabFromInputResponse(t *ScanTarget, responses map[string]ScanResponse) *Grab { var ipstr string - + var port uint if t.IP != nil { ipstr = t.IP.String() } + if t.Port != nil { + port = *t.Port + } return &Grab{ IP: ipstr, + Port: port, Domain: t.Domain, Data: responses, } diff --git a/setup.py b/setup.py index 578560c3..04816d90 100644 --- a/setup.py +++ b/setup.py @@ -4,18 +4,15 @@ here = os.path.abspath(os.path.dirname(__file__)) setup( - name="zgrab2_schemas", - version="0.0.1", - description="ZSchema definitions for zgrab2's JSON output.", - classifiers=[ - "Programming Language :: Python", - "Natural Language :: English" - ], - author="ZMap Team", - author_email="team@zmap.io", - url="https://github.com/zmap/zgrab2", - keywords="zmap censys zgrab2 internet-wide scanning", - packages=find_packages(), - include_package_data=True, - zip_safe=False + name="zgrab2_schemas", + version="0.0.1", + description="ZSchema definitions for zgrab2's JSON output.", + classifiers=["Programming Language :: Python", "Natural Language :: English"], + author="ZMap Team", + author_email="team@zmap.io", + url="https://github.com/zmap/zgrab2", + keywords="zmap censys zgrab2 internet-wide scanning", + packages=find_packages(), + include_package_data=True, + zip_safe=False, ) diff --git a/tls.go b/tls.go index 1b056121..fbaf8d6d 100644 --- a/tls.go +++ b/tls.go @@ -12,8 +12,10 @@ import ( "time" log "github.com/sirupsen/logrus" + "github.com/zmap/zcrypto/encoding/asn1" "github.com/zmap/zcrypto/tls" "github.com/zmap/zcrypto/x509" + "github.com/zmap/zcrypto/x509/pkix" ) // Shared code for TLS scans. @@ -65,7 +67,7 @@ type TLSFlags struct { // TODO: format? ClientRandom string `long:"client-random" description:"Set an explicit Client Random (base64 encoded)"` // TODO: format? - ClientHello string `long:"client-hello" description:"Set an explicit ClientHello (base64 encoded)"` + ClientHello string `long:"client-hello" description:"Set an explicit ClientHello (base64 encoded)"` } func getCSV(arg string) []string { @@ -149,6 +151,10 @@ func (t *TLSFlags) GetTLSConfigForTarget(target *ScanTarget) (*tls.Config, error log.Fatalf("Could not read certificates from PEM file. Invalid PEM?") } } + + asn1.AllowPermissiveParsing = true + pkix.LegacyNameString = true + if t.NextProtos != "" { // TODO: Different format? ret.NextProtos = getCSV(t.NextProtos) diff --git a/utility.go b/utility.go index c2d88a7f..4d500858 100644 --- a/utility.go +++ b/utility.go @@ -2,6 +2,7 @@ package zgrab2 import ( "errors" + "fmt" "net" "regexp" "strconv" @@ -9,13 +10,16 @@ import ( "time" - "github.com/zmap/zflags" - "github.com/sirupsen/logrus" "runtime/debug" + + "github.com/sirupsen/logrus" + flags "github.com/zmap/zflags" ) var parser *flags.Parser +const defaultDNSPort = "53" + func init() { parser = flags.NewParser(&config, flags.Default) } @@ -214,8 +218,9 @@ func IsTimeoutError(err error) bool { // doing anything. Otherwise, it logs the stacktrace, the panic error, and the provided message // before re-raising the original panic. // Example: -// defer zgrab2.LogPanic("Error decoding body '%x'", body) -func LogPanic(format string, args...interface{}) { +// +// defer zgrab2.LogPanic("Error decoding body '%x'", body) +func LogPanic(format string, args ...interface{}) { err := recover() if err == nil { return @@ -224,3 +229,26 @@ func LogPanic(format string, args...interface{}) { logrus.Errorf(format, args...) panic(err) } + +// addDefaultPortToDNSServerName validates that the input DNS server address is correct and appends the default DNS port 53 if no port is specified +func addDefaultPortToDNSServerName(inAddr string) (string, error) { + // Try to split host and port to see if the port is already specified. + host, port, err := net.SplitHostPort(inAddr) + if err != nil { + // might mean there's no port specified + host = inAddr + } + + // Validate the host part as an IP address. + ip := net.ParseIP(host) + if ip == nil { + return "", fmt.Errorf("invalid IP address") + } + + // If the original input does not have a port, specify port 53 as the default + if port == "" { + port = defaultDNSPort + } + + return net.JoinHostPort(ip.String(), port), nil +} diff --git a/zgrab2_schemas/README.md b/zgrab2_schemas/README.md index ebb10c3d..e047b2fa 100644 --- a/zgrab2_schemas/README.md +++ b/zgrab2_schemas/README.md @@ -3,7 +3,7 @@ ZGrab 2.0 schemas for zschema ## Validating -[integration_tests.sh](../integration_tests.sh) automatically validates +[integration_tests](../integration_tests) automatically validates output from the integration tests; to manually validate a zgrab2 result, you can follow these steps: @@ -11,11 +11,11 @@ you can follow these steps: 1. Run the zschema validator: 1. Run the zschema module's main function 2. Pass it the `validate` command - 3. Give the path to the zgrab2 schema [`schemas/__init__.py:zgrab2`](schemas/__init.py__) + 3. Give the path to the zgrab2 schema [`zgrab2/__init__.py:zgrab2`](zgrab2/__init__.py) 4. Pass in the zgrab2 JSON file to validate * ``` echo 127.0.0.1 | ./cmd/zgrab2/zgrab2 mysql > output.json - PYTHONPATH=/path/to/zschema python -m zschema validate schemas/__init__.py:zgrab2 output.json + PYTHONPATH=/path/to/zschema python2 -m zschema validate zgrab2 output.json --path . --module zgrab2_schemas.zgrab2 ``` ## Adding new module schemas @@ -35,11 +35,11 @@ unfortunately, this means that multiple scans on a single host, or scans using custom identifiers, will not validate). Your module should include a `SubRecord` that extends from `zgrab2.base_scan_response`, -specifically, overridding the `result` field. See [schemas/mysql.py](schemas/mysql.py) +specifically, overridding the `result` field. See [zgrab2/mysql.py](zgrab2/mysql.py) for an example. ### Register the module -In [`schemas/__init__.py`](schemas/__init__.py), add an import for your +In [`zgrab2/__init__.py`](zgrab2/__init__.py), add an import for your module (e.g. `import my_protocol`). This will ensure that the module code is executed and that the response type is registered with the zgrab2 module. diff --git a/zgrab2_schemas/zgrab2/__init__.py b/zgrab2_schemas/zgrab2/__init__.py index 5d510400..5ca9ed17 100644 --- a/zgrab2_schemas/zgrab2/__init__.py +++ b/zgrab2_schemas/zgrab2/__init__.py @@ -21,3 +21,4 @@ from . import telnet from . import ipp from . import banner +from . import amqp091 diff --git a/zgrab2_schemas/zgrab2/amqp091.py b/zgrab2_schemas/zgrab2/amqp091.py new file mode 100644 index 00000000..842e301b --- /dev/null +++ b/zgrab2_schemas/zgrab2/amqp091.py @@ -0,0 +1,50 @@ +# zschema sub-schema for zgrab2's AMQP091 module +# Registers zgrab2-amqp091 globally, and amqp091 with the main zgrab2 schema. +from zschema.leaves import * +from zschema.compounds import * +import zschema.registry + +from . import zgrab2 + +# Schema for connectionTune struct +connection_tune = SubRecord( + { + "channel_max": Unsigned32BitInteger(), + "frame_max": Unsigned32BitInteger(), + "heartbeat": Unsigned32BitInteger(), + } +) + +# Schema for knownServerProperties struct +known_server_properties = SubRecord( + { + "product": String(), + "version": String(), + "platform": String(), + "copyright": String(), + "information": String(), + "unknown_props": String(), + } +) + +# Schema for Result struct +result_schema = SubRecord( + { + "result": SubRecord( + { + "failure": String(), + "version_major": Unsigned32BitInteger(), + "version_minor": Unsigned32BitInteger(), + "server_properties": known_server_properties, + "locales": ListOf(String()), + "auth_success": Boolean(), + "tune": connection_tune, + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) + +zschema.registry.register_schema("zgrab2-amqp091", result_schema) +zgrab2.register_scan_response_type("amqp091", result_schema) diff --git a/zgrab2_schemas/zgrab2/bacnet.py b/zgrab2_schemas/zgrab2/bacnet.py index 79aa012d..4dbc1c9d 100644 --- a/zgrab2_schemas/zgrab2/bacnet.py +++ b/zgrab2_schemas/zgrab2/bacnet.py @@ -7,20 +7,25 @@ import zcrypto_schemas from . import zgrab2 -bacnet_scan_response = SubRecord({ - "result": SubRecord({ - "is_bacnet": Boolean(), - "instance_number": Unsigned32BitInteger(), - "vendor_id": Unsigned16BitInteger(), - "vendor_name": String(), - "firmware_revision": String(), - "application_software_revision": String(), - "object_name": String(), - "model_name": String(), - "description": String(), - "location": String(), - }) -}, extends=zgrab2.base_scan_response) +bacnet_scan_response = SubRecord( + { + "result": SubRecord( + { + "is_bacnet": Boolean(), + "instance_number": Unsigned32BitInteger(), + "vendor_id": Unsigned16BitInteger(), + "vendor_name": String(), + "firmware_revision": String(), + "application_software_revision": String(), + "object_name": String(), + "model_name": String(), + "description": String(), + "location": String(), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-bacnet", bacnet_scan_response) diff --git a/zgrab2_schemas/zgrab2/banner.py b/zgrab2_schemas/zgrab2/banner.py index 7014e622..5092a17e 100644 --- a/zgrab2_schemas/zgrab2/banner.py +++ b/zgrab2_schemas/zgrab2/banner.py @@ -8,12 +8,18 @@ from . import zgrab2 # modules/banner/scanner.go - Results -banner_scan_response = SubRecord({ - "result": SubRecord({ - "banner": String(), - "length": Unsigned32BitInteger() - }) -}, extends=zgrab2.base_scan_response) +banner_scan_response = SubRecord( + { + "result": SubRecord( + { + "banner": String(), + "length": Unsigned32BitInteger(), + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-banner", banner_scan_response) diff --git a/zgrab2_schemas/zgrab2/dnp3.py b/zgrab2_schemas/zgrab2/dnp3.py index 382bb82b..7ea85dd9 100644 --- a/zgrab2_schemas/zgrab2/dnp3.py +++ b/zgrab2_schemas/zgrab2/dnp3.py @@ -7,12 +7,17 @@ import zcrypto_schemas.zcrypto as zcrypto from . import zgrab2 -dnp3_scan_response = SubRecord({ - "result": SubRecord({ - "is_dnp3": Boolean(), - "raw_response": Binary(), - }) -}, extends=zgrab2.base_scan_response) +dnp3_scan_response = SubRecord( + { + "result": SubRecord( + { + "is_dnp3": Boolean(), + "raw_response": Binary(), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-dnp3", dnp3_scan_response) diff --git a/zgrab2_schemas/zgrab2/fox.py b/zgrab2_schemas/zgrab2/fox.py index 7370f5ae..fcf0ee0e 100644 --- a/zgrab2_schemas/zgrab2/fox.py +++ b/zgrab2_schemas/zgrab2/fox.py @@ -7,30 +7,36 @@ import zcrypto_schemas.zcrypto as zcrypto from . import zgrab2 -fox_scan_response = SubRecord({ - 'result': SubRecord({ - 'is_fox': Boolean(), - 'version': String(), - 'id': Unsigned32BitInteger(), - 'hostname': String(), - 'host_address': String(), - 'app_name': String(), - 'app_version': String(), - 'vm_name': String(), - 'vm_version': String(), - 'os_name': String(), - 'os_version': String(), - 'station_name': String(), - 'language': String(), - 'time_zone': String(), - 'host_id': String(), - 'vm_uuid': String(), - 'brand_id': String(), - 'sys_info': String(), - 'agent_auth_type': String(), - }) -}, extends=zgrab2.base_scan_response) +fox_scan_response = SubRecord( + { + "result": SubRecord( + { + "is_fox": Boolean(), + "version": String(), + "id": Unsigned32BitInteger(), + "hostname": String(), + "host_address": String(), + "app_name": String(), + "app_version": String(), + "vm_name": String(), + "vm_version": String(), + "os_name": String(), + "os_version": String(), + "station_name": String(), + "language": String(), + "time_zone": String(), + "host_id": String(), + "vm_uuid": String(), + "brand_id": String(), + "sys_info": String(), + "agent_auth_type": String(), + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) -zschema.registry.register_schema('zgrab2-fox', fox_scan_response) +zschema.registry.register_schema("zgrab2-fox", fox_scan_response) -zgrab2.register_scan_response_type('fox', fox_scan_response) +zgrab2.register_scan_response_type("fox", fox_scan_response) diff --git a/zgrab2_schemas/zgrab2/ftp.py b/zgrab2_schemas/zgrab2/ftp.py index 80d96b81..1152d64d 100644 --- a/zgrab2_schemas/zgrab2/ftp.py +++ b/zgrab2_schemas/zgrab2/ftp.py @@ -8,14 +8,19 @@ from . import zgrab2 # modules/ftp.go - FTPScanResults -ftp_scan_response = SubRecord({ - "result": SubRecord({ - "tls": zgrab2.tls_log, - "banner": String(), - "auth_tls": String(), - "auth_ssl": String(), - }) -}, extends=zgrab2.base_scan_response) +ftp_scan_response = SubRecord( + { + "result": SubRecord( + { + "tls": zgrab2.tls_log, + "banner": String(), + "auth_tls": String(), + "auth_ssl": String(), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-ftp", ftp_scan_response) diff --git a/zgrab2_schemas/zgrab2/http.py b/zgrab2_schemas/zgrab2/http.py index ffff1f89..add8c465 100644 --- a/zgrab2_schemas/zgrab2/http.py +++ b/zgrab2_schemas/zgrab2/http.py @@ -81,14 +81,10 @@ "x_xss_protection", ] -http_unknown_headers = ListOf(SubRecord({ - "key": String(), - "value": ListOf(String()) -})) +http_unknown_headers = ListOf(SubRecord({"key": String(), "value": ListOf(String())})) _http_headers = dict( - (header_name, ListOf(String())) - for header_name in http_known_headers + (header_name, ListOf(String())) for header_name in http_known_headers ) _http_headers["unknown"] = http_unknown_headers @@ -99,81 +95,93 @@ http_form_values = SubRecord({}) # TODO FIXME: unconstrained dict # lib/http/request.go: URLWrapper -http_url_wrapper = SubRecord({ - "scheme": String(), - "opaque": String(), - "host": String(), - "path": String(), - "raw_path": String(), - "raw_query": String(), - "fragment": String() -}) +http_url_wrapper = SubRecord( + { + "scheme": String(), + "opaque": String(), + "host": String(), + "path": String(), + "raw_path": String(), + "raw_query": String(), + "fragment": String(), + } +) # modules/http.go: HTTPRequest -http_request = SubRecord({ - "method": String(), - "endpoint": String(), - "user_agent": String(), - "body": String() -}) +http_request = SubRecord( + {"method": String(), "endpoint": String(), "user_agent": String(), "body": String()} +) # modules/http.go: HTTPResponse -http_response = SubRecord({ - "version_major": Signed32BitInteger(), - "version_minor": Signed32BitInteger(), - "status_code": Signed32BitInteger(), - "status_line": String(), - "headers": http_headers, - "body": String(), - "body_sha256": String() -}) +http_response = SubRecord( + { + "version_major": Signed32BitInteger(), + "version_minor": Signed32BitInteger(), + "status_code": Signed32BitInteger(), + "status_line": String(), + "headers": http_headers, + "body": String(), + "body_sha256": String(), + } +) # lib/http/request.go: http.Request -http_request_full = SubRecord({ - "url": http_url_wrapper, - "method": String(), - "headers": http_headers, - "body": String(), - "content_length": Signed64BitInteger(), - "transfer_encoding": ListOf(String()), - "close": Boolean(), - "host": String(), - "form": http_form_values, - "post_form": http_form_values, - "multipart_form": http_form_values, - "trailers": http_headers, - # The new field tls_log contains the zgrab2 TLS logs. - "tls_log": zgrab2.tls_log -}) +http_request_full = SubRecord( + { + "url": http_url_wrapper, + "method": String(), + "headers": http_headers, + "body": String(), + "content_length": Signed64BitInteger(), + "transfer_encoding": ListOf(String()), + "close": Boolean(), + "host": String(), + "form": http_form_values, + "post_form": http_form_values, + "multipart_form": http_form_values, + "trailers": http_headers, + # The new field tls_log contains the zgrab2 TLS logs. + "tls_log": zgrab2.tls_log, + } +) # lib/http/response.go: http.Response -http_response_full = SubRecord({ - "status_line": String(), - "status_code": Unsigned32BitInteger(), - # lib/http/protocol.go: http.Protocol - "protocol": SubRecord({ - "name": String(), - "major": Unsigned32BitInteger(), - "minor": Unsigned32BitInteger(), - }), - "headers": http_headers, - "body": String(), - "body_sha256": Binary(), - "content_length": Signed64BitInteger(), - "transfer_encoding": ListOf(String()), - "trailers": http_headers, - "request": http_request_full -}) +http_response_full = SubRecord( + { + "status_line": String(), + "status_code": Unsigned32BitInteger(), + # lib/http/protocol.go: http.Protocol + "protocol": SubRecord( + { + "name": String(), + "major": Unsigned32BitInteger(), + "minor": Unsigned32BitInteger(), + } + ), + "headers": http_headers, + "body": String(), + "body_sha256": Binary(), + "content_length": Signed64BitInteger(), + "transfer_encoding": ListOf(String()), + "trailers": http_headers, + "request": http_request_full, + } +) # modules/http.go: HTTPResults -http_scan_response = SubRecord({ - "result": SubRecord({ - "connect_request": http_request, - "connect_response": http_response, - "response": http_response_full, - "redirect_response_chain": ListOf(http_response_full), - }) -}, extends=zgrab2.base_scan_response) +http_scan_response = SubRecord( + { + "result": SubRecord( + { + "connect_request": http_request, + "connect_response": http_response, + "response": http_response_full, + "redirect_response_chain": ListOf(http_response_full), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-http", http_scan_response) diff --git a/zgrab2_schemas/zgrab2/imap.py b/zgrab2_schemas/zgrab2/imap.py index 42299b58..2625b9c5 100644 --- a/zgrab2_schemas/zgrab2/imap.py +++ b/zgrab2_schemas/zgrab2/imap.py @@ -7,14 +7,21 @@ import zcrypto_schemas.zcrypto as zcrypto from . import zgrab2 -imap_scan_response = SubRecord({ - "result": SubRecord({ - "banner": String(doc="The IMAP banner."), - "starttls": String(doc="The server's response to the STARTTLS command."), - "close": String(doc="The server's response to the CLOSE command."), - "tls": zgrab2.tls_log, - }) -}, extends=zgrab2.base_scan_response) +imap_scan_response = SubRecord( + { + "result": SubRecord( + { + "banner": String(doc="The IMAP banner."), + "starttls": String( + doc="The server's response to the STARTTLS command." + ), + "close": String(doc="The server's response to the CLOSE command."), + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-imap", imap_scan_response) diff --git a/zgrab2_schemas/zgrab2/ipp.py b/zgrab2_schemas/zgrab2/ipp.py index 4cafed3c..ff1fd2fc 100644 --- a/zgrab2_schemas/zgrab2/ipp.py +++ b/zgrab2_schemas/zgrab2/ipp.py @@ -63,14 +63,10 @@ "x_forwarded_for", ] -http_unknown_headers = ListOf(SubRecord({ - "key": String(), - "value": ListOf(String()) -})) +http_unknown_headers = ListOf(SubRecord({"key": String(), "value": ListOf(String())})) _http_headers = dict( - (header_name, ListOf(String())) - for header_name in http_known_headers + (header_name, ListOf(String())) for header_name in http_known_headers ) _http_headers["unknown"] = http_unknown_headers @@ -81,71 +77,78 @@ http_form_values = SubRecord({}) # TODO FIXME: unconstrained dict # lib/http/request.go: URLWrapper -http_url_wrapper = SubRecord({ - "scheme": String(), - "opaque": String(), - "host": String(), - "path": String(), - "raw_path": String(), - "raw_query": String(), - "fragment": String() -}) +http_url_wrapper = SubRecord( + { + "scheme": String(), + "opaque": String(), + "host": String(), + "path": String(), + "raw_path": String(), + "raw_query": String(), + "fragment": String(), + } +) # modules/http.go: HTTPRequest -http_request = SubRecord({ - "method": String(), - "endpoint": String(), - "user_agent": String(), - "body": String() -}) +http_request = SubRecord( + {"method": String(), "endpoint": String(), "user_agent": String(), "body": String()} +) # modules/http.go: HTTPResponse -http_response = SubRecord({ - "version_major": Signed32BitInteger(), - "version_minor": Signed32BitInteger(), - "status_code": Signed32BitInteger(), - "status_line": String(), - "headers": http_headers, - "body": String(), - "body_sha256": String() -}) +http_response = SubRecord( + { + "version_major": Signed32BitInteger(), + "version_minor": Signed32BitInteger(), + "status_code": Signed32BitInteger(), + "status_line": String(), + "headers": http_headers, + "body": String(), + "body_sha256": String(), + } +) # lib/http/request.go: http.Request -http_request_full = SubRecord({ - "url": http_url_wrapper, - "method": String(), - "headers": http_headers, - "body": String(), - "content_length": Signed64BitInteger(), - "transfer_encoding": ListOf(String()), - "close": Boolean(), - "host": String(), - "form": http_form_values, - "post_form": http_form_values, - "multipart_form": http_form_values, - "trailers": http_headers, - # The new field tls_log contains the zgrab2 TLS logs. - "tls_log": zgrab2.tls_log -}) +http_request_full = SubRecord( + { + "url": http_url_wrapper, + "method": String(), + "headers": http_headers, + "body": String(), + "content_length": Signed64BitInteger(), + "transfer_encoding": ListOf(String()), + "close": Boolean(), + "host": String(), + "form": http_form_values, + "post_form": http_form_values, + "multipart_form": http_form_values, + "trailers": http_headers, + # The new field tls_log contains the zgrab2 TLS logs. + "tls_log": zgrab2.tls_log, + } +) # lib/http/response.go: http.Response -http_response_full = SubRecord({ - "status_line": String(), - "status_code": Unsigned32BitInteger(), - # lib/http/protocol.go: http.Protocol - "protocol": SubRecord({ - "name": String(), - "major": Unsigned32BitInteger(), - "minor": Unsigned32BitInteger(), - }), - "headers": http_headers, - "body": String(), - "body_sha256": Binary(), - "content_length": Signed64BitInteger(), - "transfer_encoding": ListOf(String()), - "trailers": http_headers, - "request": http_request_full -}) +http_response_full = SubRecord( + { + "status_line": String(), + "status_code": Unsigned32BitInteger(), + # lib/http/protocol.go: http.Protocol + "protocol": SubRecord( + { + "name": String(), + "major": Unsigned32BitInteger(), + "minor": Unsigned32BitInteger(), + } + ), + "headers": http_headers, + "body": String(), + "body_sha256": Binary(), + "content_length": Signed64BitInteger(), + "transfer_encoding": ListOf(String()), + "trailers": http_headers, + "request": http_request_full, + } +) # TODO: Determine whether value-tag types with same underlying form should have a different name in this mapping # TODO: Add method to decode these values appropriately. Encoding of different tag's attribute values specified @@ -153,56 +156,96 @@ # "value-tag" values which specify the interpretation of an attribute's value: # From RFC 8010 Section 3.5.2 (https://tools.ietf.org/html/rfc8010#section-3.5.2) # Note: value-tag values are camelCase because the names are specified that way in RFC -ipp_attribute_value = SubRecord({ - "raw": IndexedBinary(), - "integer": Signed32BitInteger(), - "boolean": Boolean(), - "enum": String(), - "octetString": IndexedBinary(), - "dateTime": DateTime(), - # TODO: Determine appropriate type for resolution - "resolution": IndexedBinary(), - # TODO: Determine appropriate type for range of Integers (probably {min, max} pair) - "rangeOfInteger": IndexedBinary(), - # TODO: Determine appropriate type for beginning of attribute collection - "bagCollection": IndexedBinary(), - "textWithLanguage": String(), - "nameWithLanguage": String(), - # TODO: Determine appropriate type for end of attribute collection - "endCollection": IndexedBinary(), - "textWithoutLanguage": String(), - "nameWithoutLanguage": String(), - "keyword": String(), - "uri": String(), - "uriScheme": String(), - "charset": String(), - "naturalLanguage": String(), - "mimeMediaType": String(), - "memberAttrName": String(), -}) - -ipp_attribute = SubRecord({ - "name": String(), - "values": ListOf(ipp_attribute_value), - "tag": Unsigned8BitInteger(), -}) - -ipp_scan_response = SubRecord({ - "result": SubRecord({ - "version_major": Signed8BitInteger(doc="Major component of IPP version listed in the Server header of a response to an IPP get-printer-attributes request."), - "version_minor": Signed8BitInteger(doc="Minor component of IPP version listed in the Server header of a response to an IPP get-printer-attributes request."), - "version_string": String(doc="The specific IPP version returned in response to an IPP get-printer-attributes request. Always in the form 'IPP/x.y'", examples=["IPP/1.0", "IPP/2.1"]), - "cups_version": String(doc="The CUPS version, if any, specified in the Server header of an IPP get-attributes response.", examples=["CUPS/1.7", "CUPS/2.2"]), - "attributes": ListOf(ipp_attribute, doc="All IPP attributes included in any contentful responses obtained. Each has a name, list of values (potentially only one), and a tag denoting how the value should be interpreted."), - "attr_cups_version": String(doc="The CUPS version, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Generally in the form 'x.y.z'.", examples=["1.7.5", "2.2.7"]), - "attr_ipp_versions": ListOf(String(), doc="Each IPP version, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Always in the form 'x.y'.", examples=["1.0", "1.1", "2.0", "2.1"]), - "attr_printer_uris": ListOf(String(), doc="Each printer URI, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Uses ipp(s) or http(s) scheme, followed by a hostname or IP, and then the path to a particular printer.", examples=["ipp://201.6.251.191:631/printers/Etiqueta", "http://163.212.253.14/ipp", "ipp://BRNB8763F84DD6A.local./ipp/port1"]), - "response": http_response_full, - "cups_response": http_response_full, - "tls": zgrab2.tls_log, - "redirect_response_chain": ListOf(http_response_full, doc="Each response returned while following a series of redirects."), - }) -}, extends=zgrab2.base_scan_response) +ipp_attribute_value = SubRecord( + { + "raw": IndexedBinary(), + "integer": Signed32BitInteger(), + "boolean": Boolean(), + "enum": String(), + "octetString": IndexedBinary(), + "dateTime": DateTime(), + # TODO: Determine appropriate type for resolution + "resolution": IndexedBinary(), + # TODO: Determine appropriate type for range of Integers (probably {min, max} pair) + "rangeOfInteger": IndexedBinary(), + # TODO: Determine appropriate type for beginning of attribute collection + "bagCollection": IndexedBinary(), + "textWithLanguage": String(), + "nameWithLanguage": String(), + # TODO: Determine appropriate type for end of attribute collection + "endCollection": IndexedBinary(), + "textWithoutLanguage": String(), + "nameWithoutLanguage": String(), + "keyword": String(), + "uri": String(), + "uriScheme": String(), + "charset": String(), + "naturalLanguage": String(), + "mimeMediaType": String(), + "memberAttrName": String(), + } +) + +ipp_attribute = SubRecord( + { + "name": String(), + "values": ListOf(ipp_attribute_value), + "tag": Unsigned8BitInteger(), + } +) + +ipp_scan_response = SubRecord( + { + "result": SubRecord( + { + "version_major": Signed8BitInteger( + doc="Major component of IPP version listed in the Server header of a response to an IPP get-printer-attributes request." + ), + "version_minor": Signed8BitInteger( + doc="Minor component of IPP version listed in the Server header of a response to an IPP get-printer-attributes request." + ), + "version_string": String( + doc="The specific IPP version returned in response to an IPP get-printer-attributes request. Always in the form 'IPP/x.y'", + examples=["IPP/1.0", "IPP/2.1"], + ), + "cups_version": String( + doc="The CUPS version, if any, specified in the Server header of an IPP get-attributes response.", + examples=["CUPS/1.7", "CUPS/2.2"], + ), + "attributes": ListOf( + ipp_attribute, + doc="All IPP attributes included in any contentful responses obtained. Each has a name, list of values (potentially only one), and a tag denoting how the value should be interpreted.", + ), + "attr_cups_version": String( + doc="The CUPS version, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Generally in the form 'x.y.z'.", + examples=["1.7.5", "2.2.7"], + ), + "attr_ipp_versions": ListOf( + String(), + doc="Each IPP version, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Always in the form 'x.y'.", + examples=["1.0", "1.1", "2.0", "2.1"], + ), + "attr_printer_uris": ListOf( + String(), + doc="Each printer URI, if any, specified in the list of attributes returned in a get-printer-attributes response or CUPS-get-printers response. Uses ipp(s) or http(s) scheme, followed by a hostname or IP, and then the path to a particular printer.", + examples=[ + "ipp://201.6.251.191:631/printers/Etiqueta", + "http://163.212.253.14/ipp", + "ipp://BRNB8763F84DD6A.local./ipp/port1", + ], + ), + "response": http_response_full, + "cups_response": http_response_full, + "tls": zgrab2.tls_log, + "redirect_response_chain": ListOf( + http_response_full, + doc="Each response returned while following a series of redirects.", + ), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-ipp", ipp_scan_response) diff --git a/zgrab2_schemas/zgrab2/modbus.py b/zgrab2_schemas/zgrab2/modbus.py index 7bb97846..2660fdb3 100644 --- a/zgrab2_schemas/zgrab2/modbus.py +++ b/zgrab2_schemas/zgrab2/modbus.py @@ -8,47 +8,57 @@ from . import zgrab2 mei_object_names = [ - 'vendor', - 'product_code', - 'revision', - 'vendor_url', - 'product_name', - 'model_name', - 'user_application_name', + "vendor", + "product_code", + "revision", + "vendor_url", + "product_name", + "model_name", + "user_application_name", ] # IDs without an explicit name are encoded as oid_(decimal id). -mei_object_set = SubRecord({ - i < len(mei_object_names) and mei_object_names[i] - or 'oid_' + str(i): String() - for i in range(0, 256) -}) - -mei_response = SubRecord({ - 'conformity_level': Unsigned8BitInteger(), - 'more_follows': Boolean(), - 'next_object_id': Unsigned8BitInteger(), - 'object_count': Unsigned8BitInteger(), - 'objects': mei_object_set, -}) - -exception_response = SubRecord({ - 'exception_function': Unsigned8BitInteger(), - 'exception_type': Unsigned8BitInteger(), -}) - -modbus_scan_response = SubRecord({ - 'result': SubRecord({ - 'length': Unsigned16BitInteger(), - 'unit_id': Unsigned8BitInteger(), - 'function_code': Unsigned8BitInteger(), - 'raw_response': Binary(), - 'mei_response': mei_response, - 'exception_response': exception_response, - 'raw': Binary(), - }) -}, extends=zgrab2.base_scan_response) - -zschema.registry.register_schema('zgrab2-modbus', modbus_scan_response) - -zgrab2.register_scan_response_type('modbus', modbus_scan_response) +mei_object_set = SubRecord( + { + i < len(mei_object_names) and mei_object_names[i] or "oid_" + str(i): String() + for i in range(0, 256) + } +) + +mei_response = SubRecord( + { + "conformity_level": Unsigned8BitInteger(), + "more_follows": Boolean(), + "next_object_id": Unsigned8BitInteger(), + "object_count": Unsigned8BitInteger(), + "objects": mei_object_set, + } +) + +exception_response = SubRecord( + { + "exception_function": Unsigned8BitInteger(), + "exception_type": Unsigned8BitInteger(), + } +) + +modbus_scan_response = SubRecord( + { + "result": SubRecord( + { + "length": Unsigned16BitInteger(), + "unit_id": Unsigned8BitInteger(), + "function_code": Unsigned8BitInteger(), + "raw_response": Binary(), + "mei_response": mei_response, + "exception_response": exception_response, + "raw": Binary(), + } + ) + }, + extends=zgrab2.base_scan_response, +) + +zschema.registry.register_schema("zgrab2-modbus", modbus_scan_response) + +zgrab2.register_scan_response_type("modbus", modbus_scan_response) diff --git a/zgrab2_schemas/zgrab2/mongodb.py b/zgrab2_schemas/zgrab2/mongodb.py index c11a4fe3..4a9df10e 100644 --- a/zgrab2_schemas/zgrab2/mongodb.py +++ b/zgrab2_schemas/zgrab2/mongodb.py @@ -7,32 +7,67 @@ import zcrypto_schemas.zcrypto as zcrypto from . import zgrab2 -mongodb_scan_response = SubRecord({ - "result": SubRecord({ - "build_info": SubRecord({ - "version": String(doc="Version of mongodb server"), - "git_version": String(doc="Git Version of mongodb server"), - "max_wire_version": Signed32BitInteger(), - "build_environment": SubRecord({ - "dist_mod": String(), - "dist_arch": String(), - "cc": String(), - "cc_flags": String(), - "cxx": String(), - "cxx_flags": String(), - "link_flags": String(), - "target_arch": String(), - "target_os": String()})}), - "is_master": SubRecord({ - "is_master": Boolean(), - "max_wire_version": Signed32BitInteger(), - "min_wire_version": Signed32BitInteger(), - "max_bson_object_size": Signed32BitInteger(), - "max_write_batch_size": Signed32BitInteger(), - "logical_session_timeout_minutes": Signed32BitInteger(), - "max_message_size_bytes": Signed32BitInteger(), - "read_only": Boolean()})}) -}, extends=zgrab2.base_scan_response) +mongodb_scan_response = SubRecord( + { + "result": SubRecord( + { + "build_info": SubRecord( + { + "version": String(doc="Version of mongodb server"), + "git_version": String(doc="Git Version of mongodb server"), + "max_wire_version": Signed32BitInteger(), + "sys_info": String(), + "allocator": String(), + "bits": Unsigned32BitInteger(), + "max_bson_object_size": Unsigned32BitInteger(), + "javascript_engine": String(), + "storage_engines": ListOf(String()), + "build_environment": SubRecord( + { + "dist_mod": String(), + "dist_arch": String(), + "cc": String(), + "cc_flags": String(), + "cxx": String(), + "cxx_flags": String(), + "link_flags": String(), + "target_arch": String(), + "target_os": String(), + } + ), + } + ), + "database_info": SubRecord( + { + "databases": ListOf( + SubRecord( + { + "name": String(), + "size_on_disk": Signed32BitInteger(), + "empty": Boolean(), + } + ) + ), + "total_size": Signed32BitInteger(), + } + ), + "is_master": SubRecord( + { + "is_master": Boolean(), + "max_wire_version": Signed32BitInteger(), + "min_wire_version": Signed32BitInteger(), + "max_bson_object_size": Signed32BitInteger(), + "max_write_batch_size": Signed32BitInteger(), + "logical_session_timeout_minutes": Signed32BitInteger(), + "max_message_size_bytes": Signed32BitInteger(), + "read_only": Boolean(), + } + ), + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-mongodb", mongodb_scan_response) diff --git a/zgrab2_schemas/zgrab2/mssql.py b/zgrab2_schemas/zgrab2/mssql.py index 7355ee20..93cc4ec5 100644 --- a/zgrab2_schemas/zgrab2/mssql.py +++ b/zgrab2_schemas/zgrab2/mssql.py @@ -8,43 +8,57 @@ from . import zgrab2 ENCRYPT_MODES = [ - "ENCRYPT_OFF", - "ENCRYPT_ON", - "ENCRYPT_NOT_SUP", - "ENCRYPT_REQ", - "UNKNOWN" + "ENCRYPT_OFF", + "ENCRYPT_ON", + "ENCRYPT_NOT_SUP", + "ENCRYPT_REQ", + "UNKNOWN", ] -unknown_prelogin_option = SubRecord({ - "token": Unsigned8BitInteger(), - "value": Binary(), -}) +unknown_prelogin_option = SubRecord( + { + "token": Unsigned8BitInteger(), + "value": Binary(), + } +) -prelogin_options = SubRecord({ - "version": SubRecord({ - "major": Unsigned8BitInteger(), - "minor": Unsigned8BitInteger(), - "build_number": Unsigned16BitInteger(), - }), - "encrypt_mode": Enum(values=ENCRYPT_MODES), - "instance": WhitespaceAnalyzedString(), - "thread_id": Unsigned32BitInteger(), - "mars": Unsigned8BitInteger(), - "trace_id": Binary(), - "fed_auth_required": Unsigned8BitInteger(), - "nonce": Binary(), - "unknown": ListOf(unknown_prelogin_option), -}) +prelogin_options = SubRecord( + { + "version": SubRecord( + { + "major": Unsigned8BitInteger(), + "minor": Unsigned8BitInteger(), + "build_number": Unsigned16BitInteger(), + } + ), + "encrypt_mode": Enum(values=ENCRYPT_MODES), + "instance": WhitespaceAnalyzedString(), + "thread_id": Unsigned32BitInteger(), + "mars": Unsigned8BitInteger(), + "trace_id": Binary(), + "fed_auth_required": Unsigned8BitInteger(), + "nonce": Binary(), + "unknown": ListOf(unknown_prelogin_option), + } +) -mssql_scan_response = SubRecord({ - "result": SubRecord({ - "version": WhitespaceAnalyzedString(), - "instance_name": WhitespaceAnalyzedString(), - "prelogin_options": prelogin_options, - "encrypt_mode": Enum(values=ENCRYPT_MODES, doc="The negotiated ENCRYPT_MODE with the server."), - "tls": zgrab2.tls_log, - }) -}, extends=zgrab2.base_scan_response) +mssql_scan_response = SubRecord( + { + "result": SubRecord( + { + "version": WhitespaceAnalyzedString(), + "instance_name": WhitespaceAnalyzedString(), + "prelogin_options": prelogin_options, + "encrypt_mode": Enum( + values=ENCRYPT_MODES, + doc="The negotiated ENCRYPT_MODE with the server.", + ), + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) zschema.registry.register_schema("zgrab2-mssql", mssql_scan_response) diff --git a/zgrab2_schemas/zgrab2/mysql.py b/zgrab2_schemas/zgrab2/mysql.py index d9d92994..450d3a51 100644 --- a/zgrab2_schemas/zgrab2/mysql.py +++ b/zgrab2_schemas/zgrab2/mysql.py @@ -8,73 +8,116 @@ from . import zgrab2 # zgrab2/lib/mysql/mysql.go: GetServerStatusFlags() -mysql_server_status_flags = zgrab2.FlagsSet([ - "SERVER_STATUS_IN_TRANS", - "SERVER_STATUS_AUTOCOMMIT", - "SERVER_MORE_RESULTS_EXISTS", - "SERVER_QUERY_NO_GOOD_INDEX_USED", - "SERVER_QUERY_NO_INDEX_USED", - "SERVER_STATUS_CURSOR_EXISTS", - "SERVER_STATUS_LAST_ROW_SENT", - "SERVER_STATUS_DB_DROPPED", - "SERVER_STATUS_NO_BACKSLASH_ESCAPES", - "SERVER_STATUS_METADATA_CHANGED", - "SERVER_QUERY_WAS_SLOW", - "SERVER_PS_OUT_PARAMS", - "SERVER_STATUS_IN_TRANS_READONLY", - "SERVER_SESSION_STATE_CHANGED", -], doc="The set of status flags the server returned in the initial HandshakePacket. Each entry corresponds to a bit being set in the flags; key names correspond to the #defines in the MySQL docs.") +mysql_server_status_flags = zgrab2.FlagsSet( + [ + "SERVER_STATUS_IN_TRANS", + "SERVER_STATUS_AUTOCOMMIT", + "SERVER_MORE_RESULTS_EXISTS", + "SERVER_QUERY_NO_GOOD_INDEX_USED", + "SERVER_QUERY_NO_INDEX_USED", + "SERVER_STATUS_CURSOR_EXISTS", + "SERVER_STATUS_LAST_ROW_SENT", + "SERVER_STATUS_DB_DROPPED", + "SERVER_STATUS_NO_BACKSLASH_ESCAPES", + "SERVER_STATUS_METADATA_CHANGED", + "SERVER_QUERY_WAS_SLOW", + "SERVER_PS_OUT_PARAMS", + "SERVER_STATUS_IN_TRANS_READONLY", + "SERVER_SESSION_STATE_CHANGED", + ], + doc="The set of status flags the server returned in the initial HandshakePacket. Each entry corresponds to a bit being set in the flags; key names correspond to the #defines in the MySQL docs.", +) # zgrab2/lib/mysql/mysql.go: GetClientCapabilityFlags() -mysql_capability_flags = zgrab2.FlagsSet([ - "CLIENT_LONG_PASSWORD", - "CLIENT_FOUND_ROWS", - "CLIENT_LONG_FLAG", - "CLIENT_CONNECT_WITH_DB", - "CLIENT_NO_SCHEMA", - "CLIENT_COMPRESS", - "CLIENT_ODBC", - "CLIENT_LOCAL_FILES", - "CLIENT_IGNORE_SPACE", - "CLIENT_PROTOCOL_41", - "CLIENT_INTERACTIVE", - "CLIENT_SSL", - "CLIENT_IGNORE_SIGPIPE", - "CLIENT_TRANSACTIONS", - "CLIENT_RESERVED", - "CLIENT_SECURE_CONNECTION", - "CLIENT_MULTI_STATEMENTS", - "CLIENT_MULTI_RESULTS", - "CLIENT_PS_MULTI_RESULTS", - "CLIENT_PLUGIN_AUTH", - "CLIENT_CONNECT_ATTRS", - "CLIENT_PLUGIN_AUTH_LEN_ENC_CLIENT_DATA", - "CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS", - "CLIENT_SESSION_TRACK", - "CLIENT_DEPRECATED_EOF", -], doc="The set of capability flags the server returned in the initial HandshakePacket. Each entry corresponds to a bit being set in the flags; key names correspond to the #defines in the MySQL docs.") +mysql_capability_flags = zgrab2.FlagsSet( + [ + "CLIENT_LONG_PASSWORD", + "CLIENT_FOUND_ROWS", + "CLIENT_LONG_FLAG", + "CLIENT_CONNECT_WITH_DB", + "CLIENT_NO_SCHEMA", + "CLIENT_COMPRESS", + "CLIENT_ODBC", + "CLIENT_LOCAL_FILES", + "CLIENT_IGNORE_SPACE", + "CLIENT_PROTOCOL_41", + "CLIENT_INTERACTIVE", + "CLIENT_SSL", + "CLIENT_IGNORE_SIGPIPE", + "CLIENT_TRANSACTIONS", + "CLIENT_RESERVED", + "CLIENT_SECURE_CONNECTION", + "CLIENT_MULTI_STATEMENTS", + "CLIENT_MULTI_RESULTS", + "CLIENT_PS_MULTI_RESULTS", + "CLIENT_PLUGIN_AUTH", + "CLIENT_CONNECT_ATTRS", + "CLIENT_PLUGIN_AUTH_LEN_ENC_CLIENT_DATA", + "CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS", + "CLIENT_SESSION_TRACK", + "CLIENT_DEPRECATED_EOF", + ], + doc="The set of capability flags the server returned in the initial HandshakePacket. Each entry corresponds to a bit being set in the flags; key names correspond to the #defines in the MySQL docs.", +) # zgrab2/modules/mysql.go: MySQLScanResults -mysql_scan_response = SubRecord({ - "result": SubRecord({ - "protocol_version": Unsigned8BitInteger(doc="8-bit unsigned integer representing the server's protocol version sent in the initial HandshakePacket from the server.", examples=["10"]), - "server_version": WhitespaceAnalyzedString(doc="The specific server version returned in the initial HandshakePacket. Often in the form x.y.z, but not always.", examples=["5.5.58", "5.6.38", "5.7.20", "8.0.3-rc-log"]), - "connection_id": zgrab2.DebugOnly(Unsigned32BitInteger(doc="The server's internal identifier for this client's connection, sent in the initial HandshakePacket.")), - "auth_plugin_data": zgrab2.DebugOnly(Binary(doc="Optional plugin-specific data, whose meaning depends on the value of auth_plugin_name. Returned in the initial HandshakePacket.")), - "capability_flags": mysql_capability_flags, - "character_set": zgrab2.DebugOnly(Unsigned8BitInteger(doc="The identifier for the character set the server is using. Returned in the initial HandshakePacket.")), - "status_flags": mysql_server_status_flags, - "auth_plugin_name": zgrab2.DebugOnly(WhitespaceAnalyzedString(doc="The name of the authentication plugin, returned in the initial HandshakePacket.")), - "error_code": Signed32BitInteger(doc="Only set if there is an error returned by the server, for example if the scanner is not on the allowed hosts list."), - # error_ids could be an Enum(values=mysql_errors.mysql_error_code_to_id), but that would be brittle to changes. - "error_id": WhitespaceAnalyzedString(doc="The friendly name for the error code as defined at https://dev.mysql.com/doc/refman/8.0/en/error-messages-server.html, or UNKNOWN."), - "error_message": WhitespaceAnalyzedString(doc="Optional string describing the error. Only set if there is an error."), - "raw_packets": ListOf(Binary(), doc="The base64 encoding of all packets sent and received during the scan."), - "tls": zgrab2.tls_log, - }) -}, extends=zgrab2.base_scan_response) +mysql_scan_response = SubRecord( + { + "result": SubRecord( + { + "protocol_version": Unsigned8BitInteger( + doc="8-bit unsigned integer representing the server's protocol version sent in the initial HandshakePacket from the server.", + examples=["10"], + ), + "server_version": WhitespaceAnalyzedString( + doc="The specific server version returned in the initial HandshakePacket. Often in the form x.y.z, but not always.", + examples=["5.5.58", "5.6.38", "5.7.20", "8.0.3-rc-log"], + ), + "connection_id": zgrab2.DebugOnly( + Unsigned32BitInteger( + doc="The server's internal identifier for this client's connection, sent in the initial HandshakePacket." + ) + ), + "auth_plugin_data": zgrab2.DebugOnly( + Binary( + doc="Optional plugin-specific data, whose meaning depends on the value of auth_plugin_name. Returned in the initial HandshakePacket." + ) + ), + "capability_flags": mysql_capability_flags, + "character_set": zgrab2.DebugOnly( + Unsigned8BitInteger( + doc="The identifier for the character set the server is using. Returned in the initial HandshakePacket." + ) + ), + "status_flags": mysql_server_status_flags, + "auth_plugin_name": zgrab2.DebugOnly( + WhitespaceAnalyzedString( + doc="The name of the authentication plugin, returned in the initial HandshakePacket." + ) + ), + "error_code": Signed32BitInteger( + doc="Only set if there is an error returned by the server, for example if the scanner is not on the allowed hosts list." + ), + # error_ids could be an Enum(values=mysql_errors.mysql_error_code_to_id), but that would be brittle to changes. + "error_id": WhitespaceAnalyzedString( + doc="The friendly name for the error code as defined at https://dev.mysql.com/doc/refman/8.0/en/error-messages-server.html, or UNKNOWN." + ), + "error_message": WhitespaceAnalyzedString( + doc="Optional string describing the error. Only set if there is an error." + ), + "raw_packets": ListOf( + Binary(), + doc="The base64 encoding of all packets sent and received during the scan.", + ), + "tls": zgrab2.tls_log, + } + ) + }, + extends=zgrab2.base_scan_response, +) -def generate_mysql_errors(root='.'): + +def generate_mysql_errors(root="."): """ Fetch the error code -> error #define mappings from dev.mysql.com and write the mappings out to the generated source files: @@ -82,15 +125,18 @@ def generate_mysql_errors(root='.'): """ from requests import get import re - li_pat = re.compile('
([0-9]+)
')
- id_pat = re.compile('SQLSTATE: .*?
[\r\n ]*\\(]+>(.*?)
')
+ id_pat = re.compile(
+ 'SQLSTATE: .*?
[\r\n ]*\\(]+>(.*?)
'
+ )
codes = {}
for url in urls:
html = get(url).content
@@ -104,33 +150,36 @@ def generate_mysql_errors(root='.'):
codes[code] = id
import os.path
from datetime import datetime
+
timestamp = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
with open(os.path.join(root, "zgrab2_schemas/zgrab2/mysql_errors.py"), "w") as fp:
- fp.write('# Auto-generated at %s using data aggregated from:\n' % timestamp)
+ fp.write("# Auto-generated at %s using data aggregated from:\n" % timestamp)
for url in urls:
- fp.write('# %s\n' % url)
+ fp.write("# %s\n" % url)
- fp.write('mysql_error_code_to_id = {\n')
+ fp.write("mysql_error_code_to_id = {\n")
for code in sorted(codes):
id = codes[code]
fp.write(' 0x%04x: "%s",\n' % (code, id))
- fp.write('}\n')
+ fp.write("}\n")
with open(os.path.join(root, "lib/mysql/errors.go"), "w") as fp:
- fp.write('package mysql\n\n')
- fp.write('// Auto-generated at %s using data aggregated from:\n' % timestamp)
+ fp.write("package mysql\n\n")
+ fp.write("// Auto-generated at %s using data aggregated from:\n" % timestamp)
for url in urls:
- fp.write('// %s\n' % url)
+ fp.write("// %s\n" % url)
- fp.write('\n')
- fp.write('// ErrorCodes maps the 16-bit error codes to the "ErrorID"s defined in the docs.\n')
- fp.write('var ErrorCodes = map[uint16]string {\n')
+ fp.write("\n")
+ fp.write(
+ '// ErrorCodes maps the 16-bit error codes to the "ErrorID"s defined in the docs.\n'
+ )
+ fp.write("var ErrorCodes = map[uint16]string {\n")
for code in sorted(codes):
id = codes[code]
fp.write(' 0x%04x: "%s",\n' % (code, id))
- fp.write('}\n')
+ fp.write("}\n")
zschema.registry.register_schema("zgrab2-mysql", mysql_scan_response)
-zgrab2.register_scan_response_type('mysql', mysql_scan_response)
+zgrab2.register_scan_response_type("mysql", mysql_scan_response)
diff --git a/zgrab2_schemas/zgrab2/mysql_errors.py b/zgrab2_schemas/zgrab2/mysql_errors.py
index f7713f0e..485fea51 100644
--- a/zgrab2_schemas/zgrab2/mysql_errors.py
+++ b/zgrab2_schemas/zgrab2/mysql_errors.py
@@ -4,30 +4,30 @@
# https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
# https://dev.mysql.com/doc/refman/8.0/en/error-messages-server.html
mysql_error_code_to_id = {
- 0x03e8: "ER_HASHCHK",
- 0x03e9: "ER_NISAMCHK",
- 0x03ea: "ER_NO",
- 0x03eb: "ER_YES",
- 0x03ec: "ER_CANT_CREATE_FILE",
- 0x03ed: "ER_CANT_CREATE_TABLE",
- 0x03ee: "ER_CANT_CREATE_DB",
- 0x03ef: "ER_DB_CREATE_EXISTS",
- 0x03f0: "ER_DB_DROP_EXISTS",
- 0x03f1: "ER_DB_DROP_DELETE",
- 0x03f2: "ER_DB_DROP_RMDIR",
- 0x03f3: "ER_CANT_DELETE_FILE",
- 0x03f4: "ER_CANT_FIND_SYSTEM_REC",
- 0x03f5: "ER_CANT_GET_STAT",
- 0x03f6: "ER_CANT_GET_WD",
- 0x03f7: "ER_CANT_LOCK",
- 0x03f8: "ER_CANT_OPEN_FILE",
- 0x03f9: "ER_FILE_NOT_FOUND",
- 0x03fa: "ER_CANT_READ_DIR",
- 0x03fb: "ER_CANT_SET_WD",
- 0x03fc: "ER_CHECKREAD",
- 0x03fd: "ER_DISK_FULL",
- 0x03fe: "ER_DUP_KEY",
- 0x03ff: "ER_ERROR_ON_CLOSE",
+ 0x03E8: "ER_HASHCHK",
+ 0x03E9: "ER_NISAMCHK",
+ 0x03EA: "ER_NO",
+ 0x03EB: "ER_YES",
+ 0x03EC: "ER_CANT_CREATE_FILE",
+ 0x03ED: "ER_CANT_CREATE_TABLE",
+ 0x03EE: "ER_CANT_CREATE_DB",
+ 0x03EF: "ER_DB_CREATE_EXISTS",
+ 0x03F0: "ER_DB_DROP_EXISTS",
+ 0x03F1: "ER_DB_DROP_DELETE",
+ 0x03F2: "ER_DB_DROP_RMDIR",
+ 0x03F3: "ER_CANT_DELETE_FILE",
+ 0x03F4: "ER_CANT_FIND_SYSTEM_REC",
+ 0x03F5: "ER_CANT_GET_STAT",
+ 0x03F6: "ER_CANT_GET_WD",
+ 0x03F7: "ER_CANT_LOCK",
+ 0x03F8: "ER_CANT_OPEN_FILE",
+ 0x03F9: "ER_FILE_NOT_FOUND",
+ 0x03FA: "ER_CANT_READ_DIR",
+ 0x03FB: "ER_CANT_SET_WD",
+ 0x03FC: "ER_CHECKREAD",
+ 0x03FD: "ER_DISK_FULL",
+ 0x03FE: "ER_DUP_KEY",
+ 0x03FF: "ER_ERROR_ON_CLOSE",
0x0400: "ER_ERROR_ON_READ",
0x0401: "ER_ERROR_ON_RENAME",
0x0402: "ER_ERROR_ON_WRITE",
@@ -38,12 +38,12 @@
0x0407: "ER_ILLEGAL_HA",
0x0408: "ER_KEY_NOT_FOUND",
0x0409: "ER_NOT_FORM_FILE",
- 0x040a: "ER_NOT_KEYFILE",
- 0x040b: "ER_OLD_KEYFILE",
- 0x040c: "ER_OPEN_AS_READONLY",
- 0x040d: "ER_OUTOFMEMORY",
- 0x040e: "ER_OUT_OF_SORTMEMORY",
- 0x040f: "ER_UNEXPECTED_EOF",
+ 0x040A: "ER_NOT_KEYFILE",
+ 0x040B: "ER_OLD_KEYFILE",
+ 0x040C: "ER_OPEN_AS_READONLY",
+ 0x040D: "ER_OUTOFMEMORY",
+ 0x040E: "ER_OUT_OF_SORTMEMORY",
+ 0x040F: "ER_UNEXPECTED_EOF",
0x0410: "ER_CON_COUNT_ERROR",
0x0411: "ER_OUT_OF_RESOURCES",
0x0412: "ER_BAD_HOST_ERROR",
@@ -54,12 +54,12 @@
0x0417: "ER_UNKNOWN_COM_ERROR",
0x0418: "ER_BAD_NULL_ERROR",
0x0419: "ER_BAD_DB_ERROR",
- 0x041a: "ER_TABLE_EXISTS_ERROR",
- 0x041b: "ER_BAD_TABLE_ERROR",
- 0x041c: "ER_NON_UNIQ_ERROR",
- 0x041d: "ER_SERVER_SHUTDOWN",
- 0x041e: "ER_BAD_FIELD_ERROR",
- 0x041f: "ER_WRONG_FIELD_WITH_GROUP",
+ 0x041A: "ER_TABLE_EXISTS_ERROR",
+ 0x041B: "ER_BAD_TABLE_ERROR",
+ 0x041C: "ER_NON_UNIQ_ERROR",
+ 0x041D: "ER_SERVER_SHUTDOWN",
+ 0x041E: "ER_BAD_FIELD_ERROR",
+ 0x041F: "ER_WRONG_FIELD_WITH_GROUP",
0x0420: "ER_WRONG_GROUP_FIELD",
0x0421: "ER_WRONG_SUM_SELECT",
0x0422: "ER_WRONG_VALUE_COUNT",
@@ -70,12 +70,12 @@
0x0427: "ER_WRONG_FIELD_SPEC",
0x0428: "ER_PARSE_ERROR",
0x0429: "ER_EMPTY_QUERY",
- 0x042a: "ER_NONUNIQ_TABLE",
- 0x042b: "ER_INVALID_DEFAULT",
- 0x042c: "ER_MULTIPLE_PRI_KEY",
- 0x042d: "ER_TOO_MANY_KEYS",
- 0x042e: "ER_TOO_MANY_KEY_PARTS",
- 0x042f: "ER_TOO_LONG_KEY",
+ 0x042A: "ER_NONUNIQ_TABLE",
+ 0x042B: "ER_INVALID_DEFAULT",
+ 0x042C: "ER_MULTIPLE_PRI_KEY",
+ 0x042D: "ER_TOO_MANY_KEYS",
+ 0x042E: "ER_TOO_MANY_KEY_PARTS",
+ 0x042F: "ER_TOO_LONG_KEY",
0x0430: "ER_KEY_COLUMN_DOES_NOT_EXITS",
0x0431: "ER_BLOB_USED_AS_KEY",
0x0432: "ER_TOO_BIG_FIELDLENGTH",
@@ -86,12 +86,12 @@
0x0437: "ER_SHUTDOWN_COMPLETE",
0x0438: "ER_FORCING_CLOSE",
0x0439: "ER_IPSOCK_ERROR",
- 0x043a: "ER_NO_SUCH_INDEX",
- 0x043b: "ER_WRONG_FIELD_TERMINATORS",
- 0x043c: "ER_BLOBS_AND_NO_TERMINATED",
- 0x043d: "ER_TEXTFILE_NOT_READABLE",
- 0x043e: "ER_FILE_EXISTS_ERROR",
- 0x043f: "ER_LOAD_INFO",
+ 0x043A: "ER_NO_SUCH_INDEX",
+ 0x043B: "ER_WRONG_FIELD_TERMINATORS",
+ 0x043C: "ER_BLOBS_AND_NO_TERMINATED",
+ 0x043D: "ER_TEXTFILE_NOT_READABLE",
+ 0x043E: "ER_FILE_EXISTS_ERROR",
+ 0x043F: "ER_LOAD_INFO",
0x0440: "ER_ALTER_INFO",
0x0441: "ER_WRONG_SUB_KEY",
0x0442: "ER_CANT_REMOVE_ALL_FIELDS",
@@ -102,12 +102,12 @@
0x0447: "ER_KILL_DENIED_ERROR",
0x0448: "ER_NO_TABLES_USED",
0x0449: "ER_TOO_BIG_SET",
- 0x044a: "ER_NO_UNIQUE_LOGFILE",
- 0x044b: "ER_TABLE_NOT_LOCKED_FOR_WRITE",
- 0x044c: "ER_TABLE_NOT_LOCKED",
- 0x044d: "ER_BLOB_CANT_HAVE_DEFAULT",
- 0x044e: "ER_WRONG_DB_NAME",
- 0x044f: "ER_WRONG_TABLE_NAME",
+ 0x044A: "ER_NO_UNIQUE_LOGFILE",
+ 0x044B: "ER_TABLE_NOT_LOCKED_FOR_WRITE",
+ 0x044C: "ER_TABLE_NOT_LOCKED",
+ 0x044D: "ER_BLOB_CANT_HAVE_DEFAULT",
+ 0x044E: "ER_WRONG_DB_NAME",
+ 0x044F: "ER_WRONG_TABLE_NAME",
0x0450: "ER_TOO_BIG_SELECT",
0x0451: "ER_UNKNOWN_ERROR",
0x0452: "ER_UNKNOWN_PROCEDURE",
@@ -118,12 +118,12 @@
0x0457: "ER_INVALID_GROUP_FUNC_USE",
0x0458: "ER_UNSUPPORTED_EXTENSION",
0x0459: "ER_TABLE_MUST_HAVE_COLUMNS",
- 0x045a: "ER_RECORD_FILE_FULL",
- 0x045b: "ER_UNKNOWN_CHARACTER_SET",
- 0x045c: "ER_TOO_MANY_TABLES",
- 0x045d: "ER_TOO_MANY_FIELDS",
- 0x045e: "ER_TOO_BIG_ROWSIZE",
- 0x045f: "ER_STACK_OVERRUN",
+ 0x045A: "ER_RECORD_FILE_FULL",
+ 0x045B: "ER_UNKNOWN_CHARACTER_SET",
+ 0x045C: "ER_TOO_MANY_TABLES",
+ 0x045D: "ER_TOO_MANY_FIELDS",
+ 0x045E: "ER_TOO_BIG_ROWSIZE",
+ 0x045F: "ER_STACK_OVERRUN",
0x0460: "ER_WRONG_OUTER_JOIN_UNUSED",
0x0461: "ER_NULL_COLUMN_IN_INDEX",
0x0462: "ER_CANT_FIND_UDF",
@@ -134,12 +134,12 @@
0x0467: "ER_CANT_FIND_DL_ENTRY",
0x0468: "ER_FUNCTION_NOT_DEFINED",
0x0469: "ER_HOST_IS_BLOCKED",
- 0x046a: "ER_HOST_NOT_PRIVILEGED",
- 0x046b: "ER_PASSWORD_ANONYMOUS_USER",
- 0x046c: "ER_PASSWORD_NOT_ALLOWED",
- 0x046d: "ER_PASSWORD_NO_MATCH",
- 0x046e: "ER_UPDATE_INFO",
- 0x046f: "ER_CANT_CREATE_THREAD",
+ 0x046A: "ER_HOST_NOT_PRIVILEGED",
+ 0x046B: "ER_PASSWORD_ANONYMOUS_USER",
+ 0x046C: "ER_PASSWORD_NOT_ALLOWED",
+ 0x046D: "ER_PASSWORD_NO_MATCH",
+ 0x046E: "ER_UPDATE_INFO",
+ 0x046F: "ER_CANT_CREATE_THREAD",
0x0470: "ER_WRONG_VALUE_COUNT_ON_ROW",
0x0471: "ER_CANT_REOPEN_TABLE",
0x0472: "ER_INVALID_USE_OF_NULL",
@@ -150,12 +150,12 @@
0x0477: "ER_COLUMNACCESS_DENIED_ERROR",
0x0478: "ER_ILLEGAL_GRANT_FOR_TABLE",
0x0479: "ER_GRANT_WRONG_HOST_OR_USER",
- 0x047a: "ER_NO_SUCH_TABLE",
- 0x047b: "ER_NONEXISTING_TABLE_GRANT",
- 0x047c: "ER_NOT_ALLOWED_COMMAND",
- 0x047d: "ER_SYNTAX_ERROR",
- 0x047e: "ER_UNUSED1",
- 0x047f: "ER_UNUSED2",
+ 0x047A: "ER_NO_SUCH_TABLE",
+ 0x047B: "ER_NONEXISTING_TABLE_GRANT",
+ 0x047C: "ER_NOT_ALLOWED_COMMAND",
+ 0x047D: "ER_SYNTAX_ERROR",
+ 0x047E: "ER_UNUSED1",
+ 0x047F: "ER_UNUSED2",
0x0480: "ER_ABORTING_CONNECTION",
0x0481: "ER_NET_PACKET_TOO_LARGE",
0x0482: "ER_NET_READ_ERROR_FROM_PIPE",
@@ -166,12 +166,12 @@
0x0487: "ER_NET_READ_INTERRUPTED",
0x0488: "ER_NET_ERROR_ON_WRITE",
0x0489: "ER_NET_WRITE_INTERRUPTED",
- 0x048a: "ER_TOO_LONG_STRING",
- 0x048b: "ER_TABLE_CANT_HANDLE_BLOB",
- 0x048c: "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT",
- 0x048d: "ER_UNUSED3",
- 0x048e: "ER_WRONG_COLUMN_NAME",
- 0x048f: "ER_WRONG_KEY_COLUMN",
+ 0x048A: "ER_TOO_LONG_STRING",
+ 0x048B: "ER_TABLE_CANT_HANDLE_BLOB",
+ 0x048C: "ER_TABLE_CANT_HANDLE_AUTO_INCREMENT",
+ 0x048D: "ER_UNUSED3",
+ 0x048E: "ER_WRONG_COLUMN_NAME",
+ 0x048F: "ER_WRONG_KEY_COLUMN",
0x0490: "ER_WRONG_MRG_TABLE",
0x0491: "ER_DUP_UNIQUE",
0x0492: "ER_BLOB_KEY_WITHOUT_LENGTH",
@@ -182,108 +182,108 @@
0x0497: "ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE",
0x0498: "ER_KEY_DOES_NOT_EXITS",
0x0499: "ER_CHECK_NO_SUCH_TABLE",
- 0x049a: "ER_CHECK_NOT_IMPLEMENTED",
- 0x049b: "ER_CANT_DO_THIS_DURING_AN_TRANSACTION",
- 0x049c: "ER_ERROR_DURING_COMMIT",
- 0x049d: "ER_ERROR_DURING_ROLLBACK",
- 0x049e: "ER_ERROR_DURING_FLUSH_LOGS",
- 0x049f: "ER_ERROR_DURING_CHECKPOINT",
- 0x04a0: "ER_NEW_ABORTING_CONNECTION",
- 0x04a1: "ER_DUMP_NOT_IMPLEMENTED",
- 0x04a2: "ER_FLUSH_MASTER_BINLOG_CLOSED",
- 0x04a3: "ER_INDEX_REBUILD",
- 0x04a4: "ER_MASTER",
- 0x04a5: "ER_MASTER_NET_READ",
- 0x04a6: "ER_MASTER_NET_WRITE",
- 0x04a7: "ER_FT_MATCHING_KEY_NOT_FOUND",
- 0x04a8: "ER_LOCK_OR_ACTIVE_TRANSACTION",
- 0x04a9: "ER_UNKNOWN_SYSTEM_VARIABLE",
- 0x04aa: "ER_CRASHED_ON_USAGE",
- 0x04ab: "ER_CRASHED_ON_REPAIR",
- 0x04ac: "ER_WARNING_NOT_COMPLETE_ROLLBACK",
- 0x04ad: "ER_TRANS_CACHE_FULL",
- 0x04ae: "ER_SLAVE_MUST_STOP",
- 0x04af: "ER_SLAVE_NOT_RUNNING",
- 0x04b0: "ER_BAD_SLAVE",
- 0x04b1: "ER_MASTER_INFO",
- 0x04b2: "ER_SLAVE_THREAD",
- 0x04b3: "ER_TOO_MANY_USER_CONNECTIONS",
- 0x04b4: "ER_SET_CONSTANTS_ONLY",
- 0x04b5: "ER_LOCK_WAIT_TIMEOUT",
- 0x04b6: "ER_LOCK_TABLE_FULL",
- 0x04b7: "ER_READ_ONLY_TRANSACTION",
- 0x04b8: "ER_DROP_DB_WITH_READ_LOCK",
- 0x04b9: "ER_CREATE_DB_WITH_READ_LOCK",
- 0x04ba: "ER_WRONG_ARGUMENTS",
- 0x04bb: "ER_NO_PERMISSION_TO_CREATE_USER",
- 0x04bc: "ER_UNION_TABLES_IN_DIFFERENT_DIR",
- 0x04bd: "ER_LOCK_DEADLOCK",
- 0x04be: "ER_TABLE_CANT_HANDLE_FT",
- 0x04bf: "ER_CANNOT_ADD_FOREIGN",
- 0x04c0: "ER_NO_REFERENCED_ROW",
- 0x04c1: "ER_ROW_IS_REFERENCED",
- 0x04c2: "ER_CONNECT_TO_MASTER",
- 0x04c3: "ER_QUERY_ON_MASTER",
- 0x04c4: "ER_ERROR_WHEN_EXECUTING_COMMAND",
- 0x04c5: "ER_WRONG_USAGE",
- 0x04c6: "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT",
- 0x04c7: "ER_CANT_UPDATE_WITH_READLOCK",
- 0x04c8: "ER_MIXING_NOT_ALLOWED",
- 0x04c9: "ER_DUP_ARGUMENT",
- 0x04ca: "ER_USER_LIMIT_REACHED",
- 0x04cb: "ER_SPECIFIC_ACCESS_DENIED_ERROR",
- 0x04cc: "ER_LOCAL_VARIABLE",
- 0x04cd: "ER_GLOBAL_VARIABLE",
- 0x04ce: "ER_NO_DEFAULT",
- 0x04cf: "ER_WRONG_VALUE_FOR_VAR",
- 0x04d0: "ER_WRONG_TYPE_FOR_VAR",
- 0x04d1: "ER_VAR_CANT_BE_READ",
- 0x04d2: "ER_CANT_USE_OPTION_HERE",
- 0x04d3: "ER_NOT_SUPPORTED_YET",
- 0x04d4: "ER_MASTER_FATAL_ERROR_READING_BINLOG",
- 0x04d5: "ER_SLAVE_IGNORED_TABLE",
- 0x04d6: "ER_INCORRECT_GLOBAL_LOCAL_VAR",
- 0x04d7: "ER_WRONG_FK_DEF",
- 0x04d8: "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF",
- 0x04d9: "ER_OPERAND_COLUMNS",
- 0x04da: "ER_SUBQUERY_NO_1_ROW",
- 0x04db: "ER_UNKNOWN_STMT_HANDLER",
- 0x04dc: "ER_CORRUPT_HELP_DB",
- 0x04dd: "ER_CYCLIC_REFERENCE",
- 0x04de: "ER_AUTO_CONVERT",
- 0x04df: "ER_ILLEGAL_REFERENCE",
- 0x04e0: "ER_DERIVED_MUST_HAVE_ALIAS",
- 0x04e1: "ER_SELECT_REDUCED",
- 0x04e2: "ER_TABLENAME_NOT_ALLOWED_HERE",
- 0x04e3: "ER_NOT_SUPPORTED_AUTH_MODE",
- 0x04e4: "ER_SPATIAL_CANT_HAVE_NULL",
- 0x04e5: "ER_COLLATION_CHARSET_MISMATCH",
- 0x04e6: "ER_SLAVE_WAS_RUNNING",
- 0x04e7: "ER_SLAVE_WAS_NOT_RUNNING",
- 0x04e8: "ER_TOO_BIG_FOR_UNCOMPRESS",
- 0x04e9: "ER_ZLIB_Z_MEM_ERROR",
- 0x04ea: "ER_ZLIB_Z_BUF_ERROR",
- 0x04eb: "ER_ZLIB_Z_DATA_ERROR",
- 0x04ec: "ER_CUT_VALUE_GROUP_CONCAT",
- 0x04ed: "ER_WARN_TOO_FEW_RECORDS",
- 0x04ee: "ER_WARN_TOO_MANY_RECORDS",
- 0x04ef: "ER_WARN_NULL_TO_NOTNULL",
- 0x04f0: "ER_WARN_DATA_OUT_OF_RANGE",
- 0x04f1: "WARN_DATA_TRUNCATED",
- 0x04f2: "ER_WARN_USING_OTHER_HANDLER",
- 0x04f3: "ER_CANT_AGGREGATE_2COLLATIONS",
- 0x04f4: "ER_DROP_USER",
- 0x04f5: "ER_REVOKE_GRANTS",
- 0x04f6: "ER_CANT_AGGREGATE_3COLLATIONS",
- 0x04f7: "ER_CANT_AGGREGATE_NCOLLATIONS",
- 0x04f8: "ER_VARIABLE_IS_NOT_STRUCT",
- 0x04f9: "ER_UNKNOWN_COLLATION",
- 0x04fa: "ER_SLAVE_IGNORED_SSL_PARAMS",
- 0x04fb: "ER_SERVER_IS_IN_SECURE_AUTH_MODE",
- 0x04fc: "ER_WARN_FIELD_RESOLVED",
- 0x04fd: "ER_BAD_SLAVE_UNTIL_COND",
- 0x04fe: "ER_MISSING_SKIP_SLAVE",
- 0x04ff: "ER_UNTIL_COND_IGNORED",
+ 0x049A: "ER_CHECK_NOT_IMPLEMENTED",
+ 0x049B: "ER_CANT_DO_THIS_DURING_AN_TRANSACTION",
+ 0x049C: "ER_ERROR_DURING_COMMIT",
+ 0x049D: "ER_ERROR_DURING_ROLLBACK",
+ 0x049E: "ER_ERROR_DURING_FLUSH_LOGS",
+ 0x049F: "ER_ERROR_DURING_CHECKPOINT",
+ 0x04A0: "ER_NEW_ABORTING_CONNECTION",
+ 0x04A1: "ER_DUMP_NOT_IMPLEMENTED",
+ 0x04A2: "ER_FLUSH_MASTER_BINLOG_CLOSED",
+ 0x04A3: "ER_INDEX_REBUILD",
+ 0x04A4: "ER_MASTER",
+ 0x04A5: "ER_MASTER_NET_READ",
+ 0x04A6: "ER_MASTER_NET_WRITE",
+ 0x04A7: "ER_FT_MATCHING_KEY_NOT_FOUND",
+ 0x04A8: "ER_LOCK_OR_ACTIVE_TRANSACTION",
+ 0x04A9: "ER_UNKNOWN_SYSTEM_VARIABLE",
+ 0x04AA: "ER_CRASHED_ON_USAGE",
+ 0x04AB: "ER_CRASHED_ON_REPAIR",
+ 0x04AC: "ER_WARNING_NOT_COMPLETE_ROLLBACK",
+ 0x04AD: "ER_TRANS_CACHE_FULL",
+ 0x04AE: "ER_SLAVE_MUST_STOP",
+ 0x04AF: "ER_SLAVE_NOT_RUNNING",
+ 0x04B0: "ER_BAD_SLAVE",
+ 0x04B1: "ER_MASTER_INFO",
+ 0x04B2: "ER_SLAVE_THREAD",
+ 0x04B3: "ER_TOO_MANY_USER_CONNECTIONS",
+ 0x04B4: "ER_SET_CONSTANTS_ONLY",
+ 0x04B5: "ER_LOCK_WAIT_TIMEOUT",
+ 0x04B6: "ER_LOCK_TABLE_FULL",
+ 0x04B7: "ER_READ_ONLY_TRANSACTION",
+ 0x04B8: "ER_DROP_DB_WITH_READ_LOCK",
+ 0x04B9: "ER_CREATE_DB_WITH_READ_LOCK",
+ 0x04BA: "ER_WRONG_ARGUMENTS",
+ 0x04BB: "ER_NO_PERMISSION_TO_CREATE_USER",
+ 0x04BC: "ER_UNION_TABLES_IN_DIFFERENT_DIR",
+ 0x04BD: "ER_LOCK_DEADLOCK",
+ 0x04BE: "ER_TABLE_CANT_HANDLE_FT",
+ 0x04BF: "ER_CANNOT_ADD_FOREIGN",
+ 0x04C0: "ER_NO_REFERENCED_ROW",
+ 0x04C1: "ER_ROW_IS_REFERENCED",
+ 0x04C2: "ER_CONNECT_TO_MASTER",
+ 0x04C3: "ER_QUERY_ON_MASTER",
+ 0x04C4: "ER_ERROR_WHEN_EXECUTING_COMMAND",
+ 0x04C5: "ER_WRONG_USAGE",
+ 0x04C6: "ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT",
+ 0x04C7: "ER_CANT_UPDATE_WITH_READLOCK",
+ 0x04C8: "ER_MIXING_NOT_ALLOWED",
+ 0x04C9: "ER_DUP_ARGUMENT",
+ 0x04CA: "ER_USER_LIMIT_REACHED",
+ 0x04CB: "ER_SPECIFIC_ACCESS_DENIED_ERROR",
+ 0x04CC: "ER_LOCAL_VARIABLE",
+ 0x04CD: "ER_GLOBAL_VARIABLE",
+ 0x04CE: "ER_NO_DEFAULT",
+ 0x04CF: "ER_WRONG_VALUE_FOR_VAR",
+ 0x04D0: "ER_WRONG_TYPE_FOR_VAR",
+ 0x04D1: "ER_VAR_CANT_BE_READ",
+ 0x04D2: "ER_CANT_USE_OPTION_HERE",
+ 0x04D3: "ER_NOT_SUPPORTED_YET",
+ 0x04D4: "ER_MASTER_FATAL_ERROR_READING_BINLOG",
+ 0x04D5: "ER_SLAVE_IGNORED_TABLE",
+ 0x04D6: "ER_INCORRECT_GLOBAL_LOCAL_VAR",
+ 0x04D7: "ER_WRONG_FK_DEF",
+ 0x04D8: "ER_KEY_REF_DO_NOT_MATCH_TABLE_REF",
+ 0x04D9: "ER_OPERAND_COLUMNS",
+ 0x04DA: "ER_SUBQUERY_NO_1_ROW",
+ 0x04DB: "ER_UNKNOWN_STMT_HANDLER",
+ 0x04DC: "ER_CORRUPT_HELP_DB",
+ 0x04DD: "ER_CYCLIC_REFERENCE",
+ 0x04DE: "ER_AUTO_CONVERT",
+ 0x04DF: "ER_ILLEGAL_REFERENCE",
+ 0x04E0: "ER_DERIVED_MUST_HAVE_ALIAS",
+ 0x04E1: "ER_SELECT_REDUCED",
+ 0x04E2: "ER_TABLENAME_NOT_ALLOWED_HERE",
+ 0x04E3: "ER_NOT_SUPPORTED_AUTH_MODE",
+ 0x04E4: "ER_SPATIAL_CANT_HAVE_NULL",
+ 0x04E5: "ER_COLLATION_CHARSET_MISMATCH",
+ 0x04E6: "ER_SLAVE_WAS_RUNNING",
+ 0x04E7: "ER_SLAVE_WAS_NOT_RUNNING",
+ 0x04E8: "ER_TOO_BIG_FOR_UNCOMPRESS",
+ 0x04E9: "ER_ZLIB_Z_MEM_ERROR",
+ 0x04EA: "ER_ZLIB_Z_BUF_ERROR",
+ 0x04EB: "ER_ZLIB_Z_DATA_ERROR",
+ 0x04EC: "ER_CUT_VALUE_GROUP_CONCAT",
+ 0x04ED: "ER_WARN_TOO_FEW_RECORDS",
+ 0x04EE: "ER_WARN_TOO_MANY_RECORDS",
+ 0x04EF: "ER_WARN_NULL_TO_NOTNULL",
+ 0x04F0: "ER_WARN_DATA_OUT_OF_RANGE",
+ 0x04F1: "WARN_DATA_TRUNCATED",
+ 0x04F2: "ER_WARN_USING_OTHER_HANDLER",
+ 0x04F3: "ER_CANT_AGGREGATE_2COLLATIONS",
+ 0x04F4: "ER_DROP_USER",
+ 0x04F5: "ER_REVOKE_GRANTS",
+ 0x04F6: "ER_CANT_AGGREGATE_3COLLATIONS",
+ 0x04F7: "ER_CANT_AGGREGATE_NCOLLATIONS",
+ 0x04F8: "ER_VARIABLE_IS_NOT_STRUCT",
+ 0x04F9: "ER_UNKNOWN_COLLATION",
+ 0x04FA: "ER_SLAVE_IGNORED_SSL_PARAMS",
+ 0x04FB: "ER_SERVER_IS_IN_SECURE_AUTH_MODE",
+ 0x04FC: "ER_WARN_FIELD_RESOLVED",
+ 0x04FD: "ER_BAD_SLAVE_UNTIL_COND",
+ 0x04FE: "ER_MISSING_SKIP_SLAVE",
+ 0x04FF: "ER_UNTIL_COND_IGNORED",
0x0500: "ER_WRONG_NAME_FOR_INDEX",
0x0501: "ER_WRONG_NAME_FOR_CATALOG",
0x0502: "ER_WARN_QC_RESIZE",
@@ -294,12 +294,12 @@
0x0507: "ER_WARN_DEPRECATED_SYNTAX",
0x0508: "ER_NON_UPDATABLE_TABLE",
0x0509: "ER_FEATURE_DISABLED",
- 0x050a: "ER_OPTION_PREVENTS_STATEMENT",
- 0x050b: "ER_DUPLICATED_VALUE_IN_TYPE",
- 0x050c: "ER_TRUNCATED_WRONG_VALUE",
- 0x050d: "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS",
- 0x050e: "ER_INVALID_ON_UPDATE",
- 0x050f: "ER_UNSUPPORTED_PS",
+ 0x050A: "ER_OPTION_PREVENTS_STATEMENT",
+ 0x050B: "ER_DUPLICATED_VALUE_IN_TYPE",
+ 0x050C: "ER_TRUNCATED_WRONG_VALUE",
+ 0x050D: "ER_TOO_MUCH_AUTO_TIMESTAMP_COLS",
+ 0x050E: "ER_INVALID_ON_UPDATE",
+ 0x050F: "ER_UNSUPPORTED_PS",
0x0510: "ER_GET_ERRMSG",
0x0511: "ER_GET_TEMPORARY_ERRMSG",
0x0512: "ER_UNKNOWN_TIME_ZONE",
@@ -310,12 +310,12 @@
0x0517: "ER_SP_NO_RECURSIVE_CREATE",
0x0518: "ER_SP_ALREADY_EXISTS",
0x0519: "ER_SP_DOES_NOT_EXIST",
- 0x051a: "ER_SP_DROP_FAILED",
- 0x051b: "ER_SP_STORE_FAILED",
- 0x051c: "ER_SP_LILABEL_MISMATCH",
- 0x051d: "ER_SP_LABEL_REDEFINE",
- 0x051e: "ER_SP_LABEL_MISMATCH",
- 0x051f: "ER_SP_UNINIT_VAR",
+ 0x051A: "ER_SP_DROP_FAILED",
+ 0x051B: "ER_SP_STORE_FAILED",
+ 0x051C: "ER_SP_LILABEL_MISMATCH",
+ 0x051D: "ER_SP_LABEL_REDEFINE",
+ 0x051E: "ER_SP_LABEL_MISMATCH",
+ 0x051F: "ER_SP_UNINIT_VAR",
0x0520: "ER_SP_BADSELECT",
0x0521: "ER_SP_BADRETURN",
0x0522: "ER_SP_BADSTATEMENT",
@@ -326,12 +326,12 @@
0x0527: "ER_SP_COND_MISMATCH",
0x0528: "ER_SP_NORETURN",
0x0529: "ER_SP_NORETURNEND",
- 0x052a: "ER_SP_BAD_CURSOR_QUERY",
- 0x052b: "ER_SP_BAD_CURSOR_SELECT",
- 0x052c: "ER_SP_CURSOR_MISMATCH",
- 0x052d: "ER_SP_CURSOR_ALREADY_OPEN",
- 0x052e: "ER_SP_CURSOR_NOT_OPEN",
- 0x052f: "ER_SP_UNDECLARED_VAR",
+ 0x052A: "ER_SP_BAD_CURSOR_QUERY",
+ 0x052B: "ER_SP_BAD_CURSOR_SELECT",
+ 0x052C: "ER_SP_CURSOR_MISMATCH",
+ 0x052D: "ER_SP_CURSOR_ALREADY_OPEN",
+ 0x052E: "ER_SP_CURSOR_NOT_OPEN",
+ 0x052F: "ER_SP_UNDECLARED_VAR",
0x0530: "ER_SP_WRONG_NO_OF_FETCH_ARGS",
0x0531: "ER_SP_FETCH_NO_DATA",
0x0532: "ER_SP_DUP_PARAM",
@@ -342,12 +342,12 @@
0x0537: "ER_SP_SUBSELECT_NYI",
0x0538: "ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG",
0x0539: "ER_SP_VARCOND_AFTER_CURSHNDLR",
- 0x053a: "ER_SP_CURSOR_AFTER_HANDLER",
- 0x053b: "ER_SP_CASE_NOT_FOUND",
- 0x053c: "ER_FPARSER_TOO_BIG_FILE",
- 0x053d: "ER_FPARSER_BAD_HEADER",
- 0x053e: "ER_FPARSER_EOF_IN_COMMENT",
- 0x053f: "ER_FPARSER_ERROR_IN_PARAMETER",
+ 0x053A: "ER_SP_CURSOR_AFTER_HANDLER",
+ 0x053B: "ER_SP_CASE_NOT_FOUND",
+ 0x053C: "ER_FPARSER_TOO_BIG_FILE",
+ 0x053D: "ER_FPARSER_BAD_HEADER",
+ 0x053E: "ER_FPARSER_EOF_IN_COMMENT",
+ 0x053F: "ER_FPARSER_ERROR_IN_PARAMETER",
0x0540: "ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER",
0x0541: "ER_VIEW_NO_EXPLAIN",
0x0542: "ER_FRM_UNKNOWN_TYPE",
@@ -358,12 +358,12 @@
0x0547: "ER_VIEW_SELECT_VARIABLE",
0x0548: "ER_VIEW_SELECT_TMPTABLE",
0x0549: "ER_VIEW_WRONG_LIST",
- 0x054a: "ER_WARN_VIEW_MERGE",
- 0x054b: "ER_WARN_VIEW_WITHOUT_KEY",
- 0x054c: "ER_VIEW_INVALID",
- 0x054d: "ER_SP_NO_DROP_SP",
- 0x054e: "ER_SP_GOTO_IN_HNDLR",
- 0x054f: "ER_TRG_ALREADY_EXISTS",
+ 0x054A: "ER_WARN_VIEW_MERGE",
+ 0x054B: "ER_WARN_VIEW_WITHOUT_KEY",
+ 0x054C: "ER_VIEW_INVALID",
+ 0x054D: "ER_SP_NO_DROP_SP",
+ 0x054E: "ER_SP_GOTO_IN_HNDLR",
+ 0x054F: "ER_TRG_ALREADY_EXISTS",
0x0550: "ER_TRG_DOES_NOT_EXIST",
0x0551: "ER_TRG_ON_VIEW_OR_TEMP_TABLE",
0x0552: "ER_TRG_CANT_CHANGE_ROW",
@@ -374,12 +374,12 @@
0x0557: "ER_ILLEGAL_VALUE_FOR_TYPE",
0x0558: "ER_VIEW_NONUPD_CHECK",
0x0559: "ER_VIEW_CHECK_FAILED",
- 0x055a: "ER_PROCACCESS_DENIED_ERROR",
- 0x055b: "ER_RELAY_LOG_FAIL",
- 0x055c: "ER_PASSWD_LENGTH",
- 0x055d: "ER_UNKNOWN_TARGET_BINLOG",
- 0x055e: "ER_IO_ERR_LOG_INDEX_READ",
- 0x055f: "ER_BINLOG_PURGE_PROHIBITED",
+ 0x055A: "ER_PROCACCESS_DENIED_ERROR",
+ 0x055B: "ER_RELAY_LOG_FAIL",
+ 0x055C: "ER_PASSWD_LENGTH",
+ 0x055D: "ER_UNKNOWN_TARGET_BINLOG",
+ 0x055E: "ER_IO_ERR_LOG_INDEX_READ",
+ 0x055F: "ER_BINLOG_PURGE_PROHIBITED",
0x0560: "ER_FSEEK_FAIL",
0x0561: "ER_BINLOG_PURGE_FATAL_ERR",
0x0562: "ER_LOG_IN_USE",
@@ -390,12 +390,12 @@
0x0567: "ER_WSAS_FAILED",
0x0568: "ER_DIFF_GROUPS_PROC",
0x0569: "ER_NO_GROUP_FOR_PROC",
- 0x056a: "ER_ORDER_WITH_PROC",
- 0x056b: "ER_LOGGING_PROHIBIT_CHANGING_OF",
- 0x056c: "ER_NO_FILE_MAPPING",
- 0x056d: "ER_WRONG_MAGIC",
- 0x056e: "ER_PS_MANY_PARAM",
- 0x056f: "ER_KEY_PART_0",
+ 0x056A: "ER_ORDER_WITH_PROC",
+ 0x056B: "ER_LOGGING_PROHIBIT_CHANGING_OF",
+ 0x056C: "ER_NO_FILE_MAPPING",
+ 0x056D: "ER_WRONG_MAGIC",
+ 0x056E: "ER_PS_MANY_PARAM",
+ 0x056F: "ER_KEY_PART_0",
0x0570: "ER_VIEW_CHECKSUM",
0x0571: "ER_VIEW_MULTIUPDATE",
0x0572: "ER_VIEW_NO_INSERT_FIELD_LIST",
@@ -406,12 +406,12 @@
0x0577: "ER_XAER_RMFAIL",
0x0578: "ER_XAER_OUTSIDE",
0x0579: "ER_XAER_RMERR",
- 0x057a: "ER_XA_RBROLLBACK",
- 0x057b: "ER_NONEXISTING_PROC_GRANT",
- 0x057c: "ER_PROC_AUTO_GRANT_FAIL",
- 0x057d: "ER_PROC_AUTO_REVOKE_FAIL",
- 0x057e: "ER_DATA_TOO_LONG",
- 0x057f: "ER_SP_BAD_SQLSTATE",
+ 0x057A: "ER_XA_RBROLLBACK",
+ 0x057B: "ER_NONEXISTING_PROC_GRANT",
+ 0x057C: "ER_PROC_AUTO_GRANT_FAIL",
+ 0x057D: "ER_PROC_AUTO_REVOKE_FAIL",
+ 0x057E: "ER_DATA_TOO_LONG",
+ 0x057F: "ER_SP_BAD_SQLSTATE",
0x0580: "ER_STARTUP",
0x0581: "ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR",
0x0582: "ER_CANT_CREATE_USER_WITH_GRANT",
@@ -422,12 +422,12 @@
0x0587: "ER_SP_NO_RETSET",
0x0588: "ER_CANT_CREATE_GEOMETRY_OBJECT",
0x0589: "ER_FAILED_ROUTINE_BREAK_BINLOG",
- 0x058a: "ER_BINLOG_UNSAFE_ROUTINE",
- 0x058b: "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER",
- 0x058c: "ER_EXEC_STMT_WITH_OPEN_CURSOR",
- 0x058d: "ER_STMT_HAS_NO_OPEN_CURSOR",
- 0x058e: "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG",
- 0x058f: "ER_NO_DEFAULT_FOR_VIEW_FIELD",
+ 0x058A: "ER_BINLOG_UNSAFE_ROUTINE",
+ 0x058B: "ER_BINLOG_CREATE_ROUTINE_NEED_SUPER",
+ 0x058C: "ER_EXEC_STMT_WITH_OPEN_CURSOR",
+ 0x058D: "ER_STMT_HAS_NO_OPEN_CURSOR",
+ 0x058E: "ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG",
+ 0x058F: "ER_NO_DEFAULT_FOR_VIEW_FIELD",
0x0590: "ER_SP_NO_RECURSION",
0x0591: "ER_TOO_BIG_SCALE",
0x0592: "ER_TOO_BIG_PRECISION",
@@ -438,108 +438,108 @@
0x0597: "ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST",
0x0598: "ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE",
0x0599: "ER_FOREIGN_DATA_STRING_INVALID",
- 0x059a: "ER_CANT_CREATE_FEDERATED_TABLE",
- 0x059b: "ER_TRG_IN_WRONG_SCHEMA",
- 0x059c: "ER_STACK_OVERRUN_NEED_MORE",
- 0x059d: "ER_TOO_LONG_BODY",
- 0x059e: "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE",
- 0x059f: "ER_TOO_BIG_DISPLAYWIDTH",
- 0x05a0: "ER_XAER_DUPID",
- 0x05a1: "ER_DATETIME_FUNCTION_OVERFLOW",
- 0x05a2: "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG",
- 0x05a3: "ER_VIEW_PREVENT_UPDATE",
- 0x05a4: "ER_PS_NO_RECURSION",
- 0x05a5: "ER_SP_CANT_SET_AUTOCOMMIT",
- 0x05a6: "ER_MALFORMED_DEFINER",
- 0x05a7: "ER_VIEW_FRM_NO_USER",
- 0x05a8: "ER_VIEW_OTHER_USER",
- 0x05a9: "ER_NO_SUCH_USER",
- 0x05aa: "ER_FORBID_SCHEMA_CHANGE",
- 0x05ab: "ER_ROW_IS_REFERENCED_2",
- 0x05ac: "ER_NO_REFERENCED_ROW_2",
- 0x05ad: "ER_SP_BAD_VAR_SHADOW",
- 0x05ae: "ER_TRG_NO_DEFINER",
- 0x05af: "ER_OLD_FILE_FORMAT",
- 0x05b0: "ER_SP_RECURSION_LIMIT",
- 0x05b1: "ER_SP_PROC_TABLE_CORRUPT",
- 0x05b2: "ER_SP_WRONG_NAME",
- 0x05b3: "ER_TABLE_NEEDS_UPGRADE",
- 0x05b4: "ER_SP_NO_AGGREGATE",
- 0x05b5: "ER_MAX_PREPARED_STMT_COUNT_REACHED",
- 0x05b6: "ER_VIEW_RECURSIVE",
- 0x05b7: "ER_NON_GROUPING_FIELD_USED",
- 0x05b8: "ER_TABLE_CANT_HANDLE_SPKEYS",
- 0x05b9: "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA",
- 0x05ba: "ER_REMOVED_SPACES",
- 0x05bb: "ER_AUTOINC_READ_FAILED",
- 0x05bc: "ER_USERNAME",
- 0x05bd: "ER_HOSTNAME",
- 0x05be: "ER_WRONG_STRING_LENGTH",
- 0x05bf: "ER_NON_INSERTABLE_TABLE",
- 0x05c0: "ER_ADMIN_WRONG_MRG_TABLE",
- 0x05c1: "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT",
- 0x05c2: "ER_NAME_BECOMES_EMPTY",
- 0x05c3: "ER_AMBIGUOUS_FIELD_TERM",
- 0x05c4: "ER_FOREIGN_SERVER_EXISTS",
- 0x05c5: "ER_FOREIGN_SERVER_DOESNT_EXIST",
- 0x05c6: "ER_ILLEGAL_HA_CREATE_OPTION",
- 0x05c7: "ER_PARTITION_REQUIRES_VALUES_ERROR",
- 0x05c8: "ER_PARTITION_WRONG_VALUES_ERROR",
- 0x05c9: "ER_PARTITION_MAXVALUE_ERROR",
- 0x05ca: "ER_PARTITION_SUBPARTITION_ERROR",
- 0x05cb: "ER_PARTITION_SUBPART_MIX_ERROR",
- 0x05cc: "ER_PARTITION_WRONG_NO_PART_ERROR",
- 0x05cd: "ER_PARTITION_WRONG_NO_SUBPART_ERROR",
- 0x05ce: "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR",
- 0x05cf: "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR",
- 0x05d0: "ER_FIELD_NOT_FOUND_PART_ERROR",
- 0x05d1: "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR",
- 0x05d2: "ER_INCONSISTENT_PARTITION_INFO_ERROR",
- 0x05d3: "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR",
- 0x05d4: "ER_PARTITIONS_MUST_BE_DEFINED_ERROR",
- 0x05d5: "ER_RANGE_NOT_INCREASING_ERROR",
- 0x05d6: "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR",
- 0x05d7: "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR",
- 0x05d8: "ER_PARTITION_ENTRY_ERROR",
- 0x05d9: "ER_MIX_HANDLER_ERROR",
- 0x05da: "ER_PARTITION_NOT_DEFINED_ERROR",
- 0x05db: "ER_TOO_MANY_PARTITIONS_ERROR",
- 0x05dc: "ER_SUBPARTITION_ERROR",
- 0x05dd: "ER_CANT_CREATE_HANDLER_FILE",
- 0x05de: "ER_BLOB_FIELD_IN_PART_FUNC_ERROR",
- 0x05df: "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF",
- 0x05e0: "ER_NO_PARTS_ERROR",
- 0x05e1: "ER_PARTITION_MGMT_ON_NONPARTITIONED",
- 0x05e2: "ER_FOREIGN_KEY_ON_PARTITIONED",
- 0x05e3: "ER_DROP_PARTITION_NON_EXISTENT",
- 0x05e4: "ER_DROP_LAST_PARTITION",
- 0x05e5: "ER_COALESCE_ONLY_ON_HASH_PARTITION",
- 0x05e6: "ER_REORG_HASH_ONLY_ON_SAME_NO",
- 0x05e7: "ER_REORG_NO_PARAM_ERROR",
- 0x05e8: "ER_ONLY_ON_RANGE_LIST_PARTITION",
- 0x05e9: "ER_ADD_PARTITION_SUBPART_ERROR",
- 0x05ea: "ER_ADD_PARTITION_NO_NEW_PARTITION",
- 0x05eb: "ER_COALESCE_PARTITION_NO_PARTITION",
- 0x05ec: "ER_REORG_PARTITION_NOT_EXIST",
- 0x05ed: "ER_SAME_NAME_PARTITION",
- 0x05ee: "ER_NO_BINLOG_ERROR",
- 0x05ef: "ER_CONSECUTIVE_REORG_PARTITIONS",
- 0x05f0: "ER_REORG_OUTSIDE_RANGE",
- 0x05f1: "ER_PARTITION_FUNCTION_FAILURE",
- 0x05f2: "ER_PART_STATE_ERROR",
- 0x05f3: "ER_LIMITED_PART_RANGE",
- 0x05f4: "ER_PLUGIN_IS_NOT_LOADED",
- 0x05f5: "ER_WRONG_VALUE",
- 0x05f6: "ER_NO_PARTITION_FOR_GIVEN_VALUE",
- 0x05f7: "ER_FILEGROUP_OPTION_ONLY_ONCE",
- 0x05f8: "ER_CREATE_FILEGROUP_FAILED",
- 0x05f9: "ER_DROP_FILEGROUP_FAILED",
- 0x05fa: "ER_TABLESPACE_AUTO_EXTEND_ERROR",
- 0x05fb: "ER_WRONG_SIZE_NUMBER",
- 0x05fc: "ER_SIZE_OVERFLOW_ERROR",
- 0x05fd: "ER_ALTER_FILEGROUP_FAILED",
- 0x05fe: "ER_BINLOG_ROW_LOGGING_FAILED",
- 0x05ff: "ER_BINLOG_ROW_WRONG_TABLE_DEF",
+ 0x059A: "ER_CANT_CREATE_FEDERATED_TABLE",
+ 0x059B: "ER_TRG_IN_WRONG_SCHEMA",
+ 0x059C: "ER_STACK_OVERRUN_NEED_MORE",
+ 0x059D: "ER_TOO_LONG_BODY",
+ 0x059E: "ER_WARN_CANT_DROP_DEFAULT_KEYCACHE",
+ 0x059F: "ER_TOO_BIG_DISPLAYWIDTH",
+ 0x05A0: "ER_XAER_DUPID",
+ 0x05A1: "ER_DATETIME_FUNCTION_OVERFLOW",
+ 0x05A2: "ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG",
+ 0x05A3: "ER_VIEW_PREVENT_UPDATE",
+ 0x05A4: "ER_PS_NO_RECURSION",
+ 0x05A5: "ER_SP_CANT_SET_AUTOCOMMIT",
+ 0x05A6: "ER_MALFORMED_DEFINER",
+ 0x05A7: "ER_VIEW_FRM_NO_USER",
+ 0x05A8: "ER_VIEW_OTHER_USER",
+ 0x05A9: "ER_NO_SUCH_USER",
+ 0x05AA: "ER_FORBID_SCHEMA_CHANGE",
+ 0x05AB: "ER_ROW_IS_REFERENCED_2",
+ 0x05AC: "ER_NO_REFERENCED_ROW_2",
+ 0x05AD: "ER_SP_BAD_VAR_SHADOW",
+ 0x05AE: "ER_TRG_NO_DEFINER",
+ 0x05AF: "ER_OLD_FILE_FORMAT",
+ 0x05B0: "ER_SP_RECURSION_LIMIT",
+ 0x05B1: "ER_SP_PROC_TABLE_CORRUPT",
+ 0x05B2: "ER_SP_WRONG_NAME",
+ 0x05B3: "ER_TABLE_NEEDS_UPGRADE",
+ 0x05B4: "ER_SP_NO_AGGREGATE",
+ 0x05B5: "ER_MAX_PREPARED_STMT_COUNT_REACHED",
+ 0x05B6: "ER_VIEW_RECURSIVE",
+ 0x05B7: "ER_NON_GROUPING_FIELD_USED",
+ 0x05B8: "ER_TABLE_CANT_HANDLE_SPKEYS",
+ 0x05B9: "ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA",
+ 0x05BA: "ER_REMOVED_SPACES",
+ 0x05BB: "ER_AUTOINC_READ_FAILED",
+ 0x05BC: "ER_USERNAME",
+ 0x05BD: "ER_HOSTNAME",
+ 0x05BE: "ER_WRONG_STRING_LENGTH",
+ 0x05BF: "ER_NON_INSERTABLE_TABLE",
+ 0x05C0: "ER_ADMIN_WRONG_MRG_TABLE",
+ 0x05C1: "ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT",
+ 0x05C2: "ER_NAME_BECOMES_EMPTY",
+ 0x05C3: "ER_AMBIGUOUS_FIELD_TERM",
+ 0x05C4: "ER_FOREIGN_SERVER_EXISTS",
+ 0x05C5: "ER_FOREIGN_SERVER_DOESNT_EXIST",
+ 0x05C6: "ER_ILLEGAL_HA_CREATE_OPTION",
+ 0x05C7: "ER_PARTITION_REQUIRES_VALUES_ERROR",
+ 0x05C8: "ER_PARTITION_WRONG_VALUES_ERROR",
+ 0x05C9: "ER_PARTITION_MAXVALUE_ERROR",
+ 0x05CA: "ER_PARTITION_SUBPARTITION_ERROR",
+ 0x05CB: "ER_PARTITION_SUBPART_MIX_ERROR",
+ 0x05CC: "ER_PARTITION_WRONG_NO_PART_ERROR",
+ 0x05CD: "ER_PARTITION_WRONG_NO_SUBPART_ERROR",
+ 0x05CE: "ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR",
+ 0x05CF: "ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR",
+ 0x05D0: "ER_FIELD_NOT_FOUND_PART_ERROR",
+ 0x05D1: "ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR",
+ 0x05D2: "ER_INCONSISTENT_PARTITION_INFO_ERROR",
+ 0x05D3: "ER_PARTITION_FUNC_NOT_ALLOWED_ERROR",
+ 0x05D4: "ER_PARTITIONS_MUST_BE_DEFINED_ERROR",
+ 0x05D5: "ER_RANGE_NOT_INCREASING_ERROR",
+ 0x05D6: "ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR",
+ 0x05D7: "ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR",
+ 0x05D8: "ER_PARTITION_ENTRY_ERROR",
+ 0x05D9: "ER_MIX_HANDLER_ERROR",
+ 0x05DA: "ER_PARTITION_NOT_DEFINED_ERROR",
+ 0x05DB: "ER_TOO_MANY_PARTITIONS_ERROR",
+ 0x05DC: "ER_SUBPARTITION_ERROR",
+ 0x05DD: "ER_CANT_CREATE_HANDLER_FILE",
+ 0x05DE: "ER_BLOB_FIELD_IN_PART_FUNC_ERROR",
+ 0x05DF: "ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF",
+ 0x05E0: "ER_NO_PARTS_ERROR",
+ 0x05E1: "ER_PARTITION_MGMT_ON_NONPARTITIONED",
+ 0x05E2: "ER_FOREIGN_KEY_ON_PARTITIONED",
+ 0x05E3: "ER_DROP_PARTITION_NON_EXISTENT",
+ 0x05E4: "ER_DROP_LAST_PARTITION",
+ 0x05E5: "ER_COALESCE_ONLY_ON_HASH_PARTITION",
+ 0x05E6: "ER_REORG_HASH_ONLY_ON_SAME_NO",
+ 0x05E7: "ER_REORG_NO_PARAM_ERROR",
+ 0x05E8: "ER_ONLY_ON_RANGE_LIST_PARTITION",
+ 0x05E9: "ER_ADD_PARTITION_SUBPART_ERROR",
+ 0x05EA: "ER_ADD_PARTITION_NO_NEW_PARTITION",
+ 0x05EB: "ER_COALESCE_PARTITION_NO_PARTITION",
+ 0x05EC: "ER_REORG_PARTITION_NOT_EXIST",
+ 0x05ED: "ER_SAME_NAME_PARTITION",
+ 0x05EE: "ER_NO_BINLOG_ERROR",
+ 0x05EF: "ER_CONSECUTIVE_REORG_PARTITIONS",
+ 0x05F0: "ER_REORG_OUTSIDE_RANGE",
+ 0x05F1: "ER_PARTITION_FUNCTION_FAILURE",
+ 0x05F2: "ER_PART_STATE_ERROR",
+ 0x05F3: "ER_LIMITED_PART_RANGE",
+ 0x05F4: "ER_PLUGIN_IS_NOT_LOADED",
+ 0x05F5: "ER_WRONG_VALUE",
+ 0x05F6: "ER_NO_PARTITION_FOR_GIVEN_VALUE",
+ 0x05F7: "ER_FILEGROUP_OPTION_ONLY_ONCE",
+ 0x05F8: "ER_CREATE_FILEGROUP_FAILED",
+ 0x05F9: "ER_DROP_FILEGROUP_FAILED",
+ 0x05FA: "ER_TABLESPACE_AUTO_EXTEND_ERROR",
+ 0x05FB: "ER_WRONG_SIZE_NUMBER",
+ 0x05FC: "ER_SIZE_OVERFLOW_ERROR",
+ 0x05FD: "ER_ALTER_FILEGROUP_FAILED",
+ 0x05FE: "ER_BINLOG_ROW_LOGGING_FAILED",
+ 0x05FF: "ER_BINLOG_ROW_WRONG_TABLE_DEF",
0x0600: "ER_BINLOG_ROW_RBR_TO_SBR",
0x0601: "ER_EVENT_ALREADY_EXISTS",
0x0602: "ER_EVENT_STORE_FAILED",
@@ -550,12 +550,12 @@
0x0607: "ER_EVENT_ENDS_BEFORE_STARTS",
0x0608: "ER_EVENT_EXEC_TIME_IN_THE_PAST",
0x0609: "ER_EVENT_OPEN_TABLE_FAILED",
- 0x060a: "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT",
- 0x060b: "ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED",
- 0x060c: "ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE",
- 0x060d: "ER_EVENT_CANNOT_DELETE",
- 0x060e: "ER_EVENT_COMPILE_ERROR",
- 0x060f: "ER_EVENT_SAME_NAME",
+ 0x060A: "ER_EVENT_NEITHER_M_EXPR_NOR_M_AT",
+ 0x060B: "ER_OBSOLETE_COL_COUNT_DOESNT_MATCH_CORRUPTED",
+ 0x060C: "ER_OBSOLETE_CANNOT_LOAD_FROM_TABLE",
+ 0x060D: "ER_EVENT_CANNOT_DELETE",
+ 0x060E: "ER_EVENT_COMPILE_ERROR",
+ 0x060F: "ER_EVENT_SAME_NAME",
0x0610: "ER_EVENT_DATA_TOO_LONG",
0x0611: "ER_DROP_INDEX_FK",
0x0612: "ER_WARN_DEPRECATED_SYNTAX_WITH_VER",
@@ -566,12 +566,12 @@
0x0617: "ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR",
0x0618: "ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT",
0x0619: "ER_NDB_CANT_SWITCH_BINLOG_FORMAT",
- 0x061a: "ER_PARTITION_NO_TEMPORARY",
- 0x061b: "ER_PARTITION_CONST_DOMAIN_ERROR",
- 0x061c: "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED",
- 0x061d: "ER_DDL_LOG_ERROR",
- 0x061e: "ER_NULL_IN_VALUES_LESS_THAN",
- 0x061f: "ER_WRONG_PARTITION_NAME",
+ 0x061A: "ER_PARTITION_NO_TEMPORARY",
+ 0x061B: "ER_PARTITION_CONST_DOMAIN_ERROR",
+ 0x061C: "ER_PARTITION_FUNCTION_IS_NOT_ALLOWED",
+ 0x061D: "ER_DDL_LOG_ERROR",
+ 0x061E: "ER_NULL_IN_VALUES_LESS_THAN",
+ 0x061F: "ER_WRONG_PARTITION_NAME",
0x0620: "ER_CANT_CHANGE_TX_CHARACTERISTICS",
0x0621: "ER_DUP_ENTRY_AUTOINCREMENT_CASE",
0x0622: "ER_EVENT_MODIFY_QUEUE_ERROR",
@@ -582,12 +582,12 @@
0x0627: "ER_BASE64_DECODE_ERROR",
0x0628: "ER_EVENT_RECURSION_FORBIDDEN",
0x0629: "ER_EVENTS_DB_ERROR",
- 0x062a: "ER_ONLY_INTEGERS_ALLOWED",
- 0x062b: "ER_UNSUPORTED_LOG_ENGINE",
- 0x062c: "ER_BAD_LOG_STATEMENT",
- 0x062d: "ER_CANT_RENAME_LOG_TABLE",
- 0x062e: "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT",
- 0x062f: "ER_WRONG_PARAMETERS_TO_NATIVE_FCT",
+ 0x062A: "ER_ONLY_INTEGERS_ALLOWED",
+ 0x062B: "ER_UNSUPORTED_LOG_ENGINE",
+ 0x062C: "ER_BAD_LOG_STATEMENT",
+ 0x062D: "ER_CANT_RENAME_LOG_TABLE",
+ 0x062E: "ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT",
+ 0x062F: "ER_WRONG_PARAMETERS_TO_NATIVE_FCT",
0x0630: "ER_WRONG_PARAMETERS_TO_STORED_FCT",
0x0631: "ER_NATIVE_FCT_NAME_COLLISION",
0x0632: "ER_DUP_ENTRY_WITH_KEY_NAME",
@@ -598,12 +598,12 @@
0x0637: "ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT",
0x0638: "ER_BINLOG_UNSAFE_STATEMENT",
0x0639: "ER_BINLOG_FATAL_ERROR",
- 0x063a: "ER_SLAVE_RELAY_LOG_READ_FAILURE",
- 0x063b: "ER_SLAVE_RELAY_LOG_WRITE_FAILURE",
- 0x063c: "ER_SLAVE_CREATE_EVENT_FAILURE",
- 0x063d: "ER_SLAVE_MASTER_COM_FAILURE",
- 0x063e: "ER_BINLOG_LOGGING_IMPOSSIBLE",
- 0x063f: "ER_VIEW_NO_CREATION_CTX",
+ 0x063A: "ER_SLAVE_RELAY_LOG_READ_FAILURE",
+ 0x063B: "ER_SLAVE_RELAY_LOG_WRITE_FAILURE",
+ 0x063C: "ER_SLAVE_CREATE_EVENT_FAILURE",
+ 0x063D: "ER_SLAVE_MASTER_COM_FAILURE",
+ 0x063E: "ER_BINLOG_LOGGING_IMPOSSIBLE",
+ 0x063F: "ER_VIEW_NO_CREATION_CTX",
0x0640: "ER_VIEW_INVALID_CREATION_CTX",
0x0641: "ER_SR_INVALID_CREATION_CTX",
0x0642: "ER_TRG_CORRUPTED_FILE",
@@ -614,12 +614,12 @@
0x0647: "ER_CANT_CREATE_SROUTINE",
0x0648: "ER_NEVER_USED",
0x0649: "ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT",
- 0x064a: "ER_SLAVE_CORRUPT_EVENT",
- 0x064b: "ER_LOAD_DATA_INVALID_COLUMN_UNUSED",
- 0x064c: "ER_LOG_PURGE_NO_FILE",
- 0x064d: "ER_XA_RBTIMEOUT",
- 0x064e: "ER_XA_RBDEADLOCK",
- 0x064f: "ER_NEED_REPREPARE",
+ 0x064A: "ER_SLAVE_CORRUPT_EVENT",
+ 0x064B: "ER_LOAD_DATA_INVALID_COLUMN_UNUSED",
+ 0x064C: "ER_LOG_PURGE_NO_FILE",
+ 0x064D: "ER_XA_RBTIMEOUT",
+ 0x064E: "ER_XA_RBDEADLOCK",
+ 0x064F: "ER_NEED_REPREPARE",
0x0650: "ER_DELAYED_NOT_SUPPORTED",
0x0651: "WARN_NO_MASTER_INFO",
0x0652: "WARN_OPTION_IGNORED",
@@ -630,12 +630,12 @@
0x0657: "ER_SLAVE_HEARTBEAT_FAILURE",
0x0658: "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE",
0x0659: "ER_NDB_REPLICATION_SCHEMA_ERROR",
- 0x065a: "ER_CONFLICT_FN_PARSE_ERROR",
- 0x065b: "ER_EXCEPTIONS_WRITE_ERROR",
- 0x065c: "ER_TOO_LONG_TABLE_COMMENT",
- 0x065d: "ER_TOO_LONG_FIELD_COMMENT",
- 0x065e: "ER_FUNC_INEXISTENT_NAME_COLLISION",
- 0x065f: "ER_DATABASE_NAME",
+ 0x065A: "ER_CONFLICT_FN_PARSE_ERROR",
+ 0x065B: "ER_EXCEPTIONS_WRITE_ERROR",
+ 0x065C: "ER_TOO_LONG_TABLE_COMMENT",
+ 0x065D: "ER_TOO_LONG_FIELD_COMMENT",
+ 0x065E: "ER_FUNC_INEXISTENT_NAME_COLLISION",
+ 0x065F: "ER_DATABASE_NAME",
0x0660: "ER_TABLE_NAME",
0x0661: "ER_PARTITION_NAME",
0x0662: "ER_SUBPARTITION_NAME",
@@ -646,12 +646,12 @@
0x0667: "ER_DEBUG_SYNC_TIMEOUT",
0x0668: "ER_DEBUG_SYNC_HIT_LIMIT",
0x0669: "ER_DUP_SIGNAL_SET",
- 0x066a: "ER_SIGNAL_WARN",
- 0x066b: "ER_SIGNAL_NOT_FOUND",
- 0x066c: "ER_SIGNAL_EXCEPTION",
- 0x066d: "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER",
- 0x066e: "ER_SIGNAL_BAD_CONDITION_TYPE",
- 0x066f: "WARN_COND_ITEM_TRUNCATED",
+ 0x066A: "ER_SIGNAL_WARN",
+ 0x066B: "ER_SIGNAL_NOT_FOUND",
+ 0x066C: "ER_SIGNAL_EXCEPTION",
+ 0x066D: "ER_RESIGNAL_WITHOUT_ACTIVE_HANDLER",
+ 0x066E: "ER_SIGNAL_BAD_CONDITION_TYPE",
+ 0x066F: "WARN_COND_ITEM_TRUNCATED",
0x0670: "ER_COND_ITEM_TOO_LONG",
0x0671: "ER_UNKNOWN_LOCALE",
0x0672: "ER_SLAVE_IGNORE_SERVER_IDS",
@@ -662,12 +662,12 @@
0x0677: "ER_TOO_MANY_PARTITION_FUNC_FIELDS_ERROR",
0x0678: "ER_MAXVALUE_IN_VALUES_IN",
0x0679: "ER_TOO_MANY_VALUES_ERROR",
- 0x067a: "ER_ROW_SINGLE_PARTITION_FIELD_ERROR",
- 0x067b: "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD",
- 0x067c: "ER_PARTITION_FIELDS_TOO_LONG",
- 0x067d: "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE",
- 0x067e: "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE",
- 0x067f: "ER_BINLOG_UNSAFE_AND_STMT_ENGINE",
+ 0x067A: "ER_ROW_SINGLE_PARTITION_FIELD_ERROR",
+ 0x067B: "ER_FIELD_TYPE_NOT_ALLOWED_AS_PARTITION_FIELD",
+ 0x067C: "ER_PARTITION_FIELDS_TOO_LONG",
+ 0x067D: "ER_BINLOG_ROW_ENGINE_AND_STMT_ENGINE",
+ 0x067E: "ER_BINLOG_ROW_MODE_AND_STMT_ENGINE",
+ 0x067F: "ER_BINLOG_UNSAFE_AND_STMT_ENGINE",
0x0680: "ER_BINLOG_ROW_INJECTION_AND_STMT_ENGINE",
0x0681: "ER_BINLOG_STMT_MODE_AND_ROW_ENGINE",
0x0682: "ER_BINLOG_ROW_INJECTION_AND_STMT_MODE",
@@ -678,12 +678,12 @@
0x0687: "ER_BINLOG_UNSAFE_AUTOINC_COLUMNS",
0x0688: "ER_BINLOG_UNSAFE_UDF",
0x0689: "ER_BINLOG_UNSAFE_SYSTEM_VARIABLE",
- 0x068a: "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION",
- 0x068b: "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS",
- 0x068c: "ER_MESSAGE_AND_STATEMENT",
- 0x068d: "ER_SLAVE_CONVERSION_FAILED",
- 0x068e: "ER_SLAVE_CANT_CREATE_CONVERSION",
- 0x068f: "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT",
+ 0x068A: "ER_BINLOG_UNSAFE_SYSTEM_FUNCTION",
+ 0x068B: "ER_BINLOG_UNSAFE_NONTRANS_AFTER_TRANS",
+ 0x068C: "ER_MESSAGE_AND_STATEMENT",
+ 0x068D: "ER_SLAVE_CONVERSION_FAILED",
+ 0x068E: "ER_SLAVE_CANT_CREATE_CONVERSION",
+ 0x068F: "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_BINLOG_FORMAT",
0x0690: "ER_PATH_LENGTH",
0x0691: "ER_WARN_DEPRECATED_SYNTAX_NO_REPLACEMENT",
0x0692: "ER_WRONG_NATIVE_TABLE_STRUCTURE",
@@ -694,108 +694,108 @@
0x0697: "ER_SPATIAL_MUST_HAVE_GEOM_COL",
0x0698: "ER_TOO_LONG_INDEX_COMMENT",
0x0699: "ER_LOCK_ABORTED",
- 0x069a: "ER_DATA_OUT_OF_RANGE",
- 0x069b: "ER_WRONG_SPVAR_TYPE_IN_LIMIT",
- 0x069c: "ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE",
- 0x069d: "ER_BINLOG_UNSAFE_MIXED_STATEMENT",
- 0x069e: "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN",
- 0x069f: "ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN",
- 0x06a0: "ER_FAILED_READ_FROM_PAR_FILE",
- 0x06a1: "ER_VALUES_IS_NOT_INT_TYPE_ERROR",
- 0x06a2: "ER_ACCESS_DENIED_NO_PASSWORD_ERROR",
- 0x06a3: "ER_SET_PASSWORD_AUTH_PLUGIN",
- 0x06a4: "ER_GRANT_PLUGIN_USER_EXISTS",
- 0x06a5: "ER_TRUNCATE_ILLEGAL_FK",
- 0x06a6: "ER_PLUGIN_IS_PERMANENT",
- 0x06a7: "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN",
- 0x06a8: "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX",
- 0x06a9: "ER_STMT_CACHE_FULL",
- 0x06aa: "ER_MULTI_UPDATE_KEY_CONFLICT",
- 0x06ab: "ER_TABLE_NEEDS_REBUILD",
- 0x06ac: "WARN_OPTION_BELOW_LIMIT",
- 0x06ad: "ER_INDEX_COLUMN_TOO_LONG",
- 0x06ae: "ER_ERROR_IN_TRIGGER_BODY",
- 0x06af: "ER_ERROR_IN_UNKNOWN_TRIGGER_BODY",
- 0x06b0: "ER_INDEX_CORRUPT",
- 0x06b1: "ER_UNDO_RECORD_TOO_BIG",
- 0x06b2: "ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT",
- 0x06b3: "ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE",
- 0x06b4: "ER_BINLOG_UNSAFE_REPLACE_SELECT",
- 0x06b5: "ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT",
- 0x06b6: "ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT",
- 0x06b7: "ER_BINLOG_UNSAFE_UPDATE_IGNORE",
- 0x06b8: "ER_PLUGIN_NO_UNINSTALL",
- 0x06b9: "ER_PLUGIN_NO_INSTALL",
- 0x06ba: "ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT",
- 0x06bb: "ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC",
- 0x06bc: "ER_BINLOG_UNSAFE_INSERT_TWO_KEYS",
- 0x06bd: "ER_TABLE_IN_FK_CHECK",
- 0x06be: "ER_UNSUPPORTED_ENGINE",
- 0x06bf: "ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST",
- 0x06c0: "ER_CANNOT_LOAD_FROM_TABLE_V2",
- 0x06c1: "ER_MASTER_DELAY_VALUE_OUT_OF_RANGE",
- 0x06c2: "ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT",
- 0x06c3: "ER_PARTITION_EXCHANGE_DIFFERENT_OPTION",
- 0x06c4: "ER_PARTITION_EXCHANGE_PART_TABLE",
- 0x06c5: "ER_PARTITION_EXCHANGE_TEMP_TABLE",
- 0x06c6: "ER_PARTITION_INSTEAD_OF_SUBPARTITION",
- 0x06c7: "ER_UNKNOWN_PARTITION",
- 0x06c8: "ER_TABLES_DIFFERENT_METADATA",
- 0x06c9: "ER_ROW_DOES_NOT_MATCH_PARTITION",
- 0x06ca: "ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX",
- 0x06cb: "ER_WARN_INDEX_NOT_APPLICABLE",
- 0x06cc: "ER_PARTITION_EXCHANGE_FOREIGN_KEY",
- 0x06cd: "ER_NO_SUCH_KEY_VALUE",
- 0x06ce: "ER_RPL_INFO_DATA_TOO_LONG",
- 0x06cf: "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE",
- 0x06d0: "ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE",
- 0x06d1: "ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX",
- 0x06d2: "ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT",
- 0x06d3: "ER_PARTITION_CLAUSE_ON_NONPARTITIONED",
- 0x06d4: "ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET",
- 0x06d5: "ER_NO_SUCH_PARTITION__UNUSED",
- 0x06d6: "ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE",
- 0x06d7: "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE",
- 0x06d8: "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE",
- 0x06d9: "ER_MTS_FEATURE_IS_NOT_SUPPORTED",
- 0x06da: "ER_MTS_UPDATED_DBS_GREATER_MAX",
- 0x06db: "ER_MTS_CANT_PARALLEL",
- 0x06dc: "ER_MTS_INCONSISTENT_DATA",
- 0x06dd: "ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING",
- 0x06de: "ER_DA_INVALID_CONDITION_NUMBER",
- 0x06df: "ER_INSECURE_PLAIN_TEXT",
- 0x06e0: "ER_INSECURE_CHANGE_MASTER",
- 0x06e1: "ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO",
- 0x06e2: "ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO",
- 0x06e3: "ER_SQLTHREAD_WITH_SECURE_SLAVE",
- 0x06e4: "ER_TABLE_HAS_NO_FT",
- 0x06e5: "ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER",
- 0x06e6: "ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION",
- 0x06e7: "ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST",
- 0x06e8: "ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION",
- 0x06e9: "ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION",
- 0x06ea: "ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL",
- 0x06eb: "ER_SKIPPING_LOGGED_TRANSACTION",
- 0x06ec: "ER_MALFORMED_GTID_SET_SPECIFICATION",
- 0x06ed: "ER_MALFORMED_GTID_SET_ENCODING",
- 0x06ee: "ER_MALFORMED_GTID_SPECIFICATION",
- 0x06ef: "ER_GNO_EXHAUSTED",
- 0x06f0: "ER_BAD_SLAVE_AUTO_POSITION",
- 0x06f1: "ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF",
- 0x06f2: "ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET",
- 0x06f3: "ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON",
- 0x06f4: "ER_GTID_MODE_REQUIRES_BINLOG",
- 0x06f5: "ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF",
- 0x06f6: "ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON",
- 0x06f7: "ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF",
- 0x06f8: "ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF__UNUSED",
- 0x06f9: "ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE",
- 0x06fa: "ER_GTID_UNSAFE_CREATE_SELECT",
- 0x06fb: "ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION",
- 0x06fc: "ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME",
- 0x06fd: "ER_MASTER_HAS_PURGED_REQUIRED_GTIDS",
- 0x06fe: "ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID",
- 0x06ff: "ER_UNKNOWN_EXPLAIN_FORMAT",
+ 0x069A: "ER_DATA_OUT_OF_RANGE",
+ 0x069B: "ER_WRONG_SPVAR_TYPE_IN_LIMIT",
+ 0x069C: "ER_BINLOG_UNSAFE_MULTIPLE_ENGINES_AND_SELF_LOGGING_ENGINE",
+ 0x069D: "ER_BINLOG_UNSAFE_MIXED_STATEMENT",
+ 0x069E: "ER_INSIDE_TRANSACTION_PREVENTS_SWITCH_SQL_LOG_BIN",
+ 0x069F: "ER_STORED_FUNCTION_PREVENTS_SWITCH_SQL_LOG_BIN",
+ 0x06A0: "ER_FAILED_READ_FROM_PAR_FILE",
+ 0x06A1: "ER_VALUES_IS_NOT_INT_TYPE_ERROR",
+ 0x06A2: "ER_ACCESS_DENIED_NO_PASSWORD_ERROR",
+ 0x06A3: "ER_SET_PASSWORD_AUTH_PLUGIN",
+ 0x06A4: "ER_GRANT_PLUGIN_USER_EXISTS",
+ 0x06A5: "ER_TRUNCATE_ILLEGAL_FK",
+ 0x06A6: "ER_PLUGIN_IS_PERMANENT",
+ 0x06A7: "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MIN",
+ 0x06A8: "ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE_MAX",
+ 0x06A9: "ER_STMT_CACHE_FULL",
+ 0x06AA: "ER_MULTI_UPDATE_KEY_CONFLICT",
+ 0x06AB: "ER_TABLE_NEEDS_REBUILD",
+ 0x06AC: "WARN_OPTION_BELOW_LIMIT",
+ 0x06AD: "ER_INDEX_COLUMN_TOO_LONG",
+ 0x06AE: "ER_ERROR_IN_TRIGGER_BODY",
+ 0x06AF: "ER_ERROR_IN_UNKNOWN_TRIGGER_BODY",
+ 0x06B0: "ER_INDEX_CORRUPT",
+ 0x06B1: "ER_UNDO_RECORD_TOO_BIG",
+ 0x06B2: "ER_BINLOG_UNSAFE_INSERT_IGNORE_SELECT",
+ 0x06B3: "ER_BINLOG_UNSAFE_INSERT_SELECT_UPDATE",
+ 0x06B4: "ER_BINLOG_UNSAFE_REPLACE_SELECT",
+ 0x06B5: "ER_BINLOG_UNSAFE_CREATE_IGNORE_SELECT",
+ 0x06B6: "ER_BINLOG_UNSAFE_CREATE_REPLACE_SELECT",
+ 0x06B7: "ER_BINLOG_UNSAFE_UPDATE_IGNORE",
+ 0x06B8: "ER_PLUGIN_NO_UNINSTALL",
+ 0x06B9: "ER_PLUGIN_NO_INSTALL",
+ 0x06BA: "ER_BINLOG_UNSAFE_WRITE_AUTOINC_SELECT",
+ 0x06BB: "ER_BINLOG_UNSAFE_CREATE_SELECT_AUTOINC",
+ 0x06BC: "ER_BINLOG_UNSAFE_INSERT_TWO_KEYS",
+ 0x06BD: "ER_TABLE_IN_FK_CHECK",
+ 0x06BE: "ER_UNSUPPORTED_ENGINE",
+ 0x06BF: "ER_BINLOG_UNSAFE_AUTOINC_NOT_FIRST",
+ 0x06C0: "ER_CANNOT_LOAD_FROM_TABLE_V2",
+ 0x06C1: "ER_MASTER_DELAY_VALUE_OUT_OF_RANGE",
+ 0x06C2: "ER_ONLY_FD_AND_RBR_EVENTS_ALLOWED_IN_BINLOG_STATEMENT",
+ 0x06C3: "ER_PARTITION_EXCHANGE_DIFFERENT_OPTION",
+ 0x06C4: "ER_PARTITION_EXCHANGE_PART_TABLE",
+ 0x06C5: "ER_PARTITION_EXCHANGE_TEMP_TABLE",
+ 0x06C6: "ER_PARTITION_INSTEAD_OF_SUBPARTITION",
+ 0x06C7: "ER_UNKNOWN_PARTITION",
+ 0x06C8: "ER_TABLES_DIFFERENT_METADATA",
+ 0x06C9: "ER_ROW_DOES_NOT_MATCH_PARTITION",
+ 0x06CA: "ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX",
+ 0x06CB: "ER_WARN_INDEX_NOT_APPLICABLE",
+ 0x06CC: "ER_PARTITION_EXCHANGE_FOREIGN_KEY",
+ 0x06CD: "ER_NO_SUCH_KEY_VALUE",
+ 0x06CE: "ER_RPL_INFO_DATA_TOO_LONG",
+ 0x06CF: "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE",
+ 0x06D0: "ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE",
+ 0x06D1: "ER_BINLOG_STMT_CACHE_SIZE_GREATER_THAN_MAX",
+ 0x06D2: "ER_CANT_UPDATE_TABLE_IN_CREATE_TABLE_SELECT",
+ 0x06D3: "ER_PARTITION_CLAUSE_ON_NONPARTITIONED",
+ 0x06D4: "ER_ROW_DOES_NOT_MATCH_GIVEN_PARTITION_SET",
+ 0x06D5: "ER_NO_SUCH_PARTITION__UNUSED",
+ 0x06D6: "ER_CHANGE_RPL_INFO_REPOSITORY_FAILURE",
+ 0x06D7: "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_CREATED_TEMP_TABLE",
+ 0x06D8: "ER_WARNING_NOT_COMPLETE_ROLLBACK_WITH_DROPPED_TEMP_TABLE",
+ 0x06D9: "ER_MTS_FEATURE_IS_NOT_SUPPORTED",
+ 0x06DA: "ER_MTS_UPDATED_DBS_GREATER_MAX",
+ 0x06DB: "ER_MTS_CANT_PARALLEL",
+ 0x06DC: "ER_MTS_INCONSISTENT_DATA",
+ 0x06DD: "ER_FULLTEXT_NOT_SUPPORTED_WITH_PARTITIONING",
+ 0x06DE: "ER_DA_INVALID_CONDITION_NUMBER",
+ 0x06DF: "ER_INSECURE_PLAIN_TEXT",
+ 0x06E0: "ER_INSECURE_CHANGE_MASTER",
+ 0x06E1: "ER_FOREIGN_DUPLICATE_KEY_WITH_CHILD_INFO",
+ 0x06E2: "ER_FOREIGN_DUPLICATE_KEY_WITHOUT_CHILD_INFO",
+ 0x06E3: "ER_SQLTHREAD_WITH_SECURE_SLAVE",
+ 0x06E4: "ER_TABLE_HAS_NO_FT",
+ 0x06E5: "ER_VARIABLE_NOT_SETTABLE_IN_SF_OR_TRIGGER",
+ 0x06E6: "ER_VARIABLE_NOT_SETTABLE_IN_TRANSACTION",
+ 0x06E7: "ER_GTID_NEXT_IS_NOT_IN_GTID_NEXT_LIST",
+ 0x06E8: "ER_CANT_CHANGE_GTID_NEXT_IN_TRANSACTION",
+ 0x06E9: "ER_SET_STATEMENT_CANNOT_INVOKE_FUNCTION",
+ 0x06EA: "ER_GTID_NEXT_CANT_BE_AUTOMATIC_IF_GTID_NEXT_LIST_IS_NON_NULL",
+ 0x06EB: "ER_SKIPPING_LOGGED_TRANSACTION",
+ 0x06EC: "ER_MALFORMED_GTID_SET_SPECIFICATION",
+ 0x06ED: "ER_MALFORMED_GTID_SET_ENCODING",
+ 0x06EE: "ER_MALFORMED_GTID_SPECIFICATION",
+ 0x06EF: "ER_GNO_EXHAUSTED",
+ 0x06F0: "ER_BAD_SLAVE_AUTO_POSITION",
+ 0x06F1: "ER_AUTO_POSITION_REQUIRES_GTID_MODE_NOT_OFF",
+ 0x06F2: "ER_CANT_DO_IMPLICIT_COMMIT_IN_TRX_WHEN_GTID_NEXT_IS_SET",
+ 0x06F3: "ER_GTID_MODE_ON_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON",
+ 0x06F4: "ER_GTID_MODE_REQUIRES_BINLOG",
+ 0x06F5: "ER_CANT_SET_GTID_NEXT_TO_GTID_WHEN_GTID_MODE_IS_OFF",
+ 0x06F6: "ER_CANT_SET_GTID_NEXT_TO_ANONYMOUS_WHEN_GTID_MODE_IS_ON",
+ 0x06F7: "ER_CANT_SET_GTID_NEXT_LIST_TO_NON_NULL_WHEN_GTID_MODE_IS_OFF",
+ 0x06F8: "ER_FOUND_GTID_EVENT_WHEN_GTID_MODE_IS_OFF__UNUSED",
+ 0x06F9: "ER_GTID_UNSAFE_NON_TRANSACTIONAL_TABLE",
+ 0x06FA: "ER_GTID_UNSAFE_CREATE_SELECT",
+ 0x06FB: "ER_GTID_UNSAFE_CREATE_DROP_TEMPORARY_TABLE_IN_TRANSACTION",
+ 0x06FC: "ER_GTID_MODE_CAN_ONLY_CHANGE_ONE_STEP_AT_A_TIME",
+ 0x06FD: "ER_MASTER_HAS_PURGED_REQUIRED_GTIDS",
+ 0x06FE: "ER_CANT_SET_GTID_NEXT_WHEN_OWNING_GTID",
+ 0x06FF: "ER_UNKNOWN_EXPLAIN_FORMAT",
0x0700: "ER_CANT_EXECUTE_IN_READ_ONLY_TRANSACTION",
0x0701: "ER_TOO_LONG_TABLE_PARTITION_COMMENT",
0x0702: "ER_SLAVE_CONFIGURATION",
@@ -806,12 +806,12 @@
0x0707: "ER_INNODB_ONLINE_LOG_TOO_BIG",
0x0708: "ER_UNKNOWN_ALTER_ALGORITHM",
0x0709: "ER_UNKNOWN_ALTER_LOCK",
- 0x070a: "ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS",
- 0x070b: "ER_MTS_RECOVERY_FAILURE",
- 0x070c: "ER_MTS_RESET_WORKERS",
- 0x070d: "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2",
- 0x070e: "ER_SLAVE_SILENT_RETRY_TRANSACTION",
- 0x070f: "ER_DISCARD_FK_CHECKS_RUNNING",
+ 0x070A: "ER_MTS_CHANGE_MASTER_CANT_RUN_WITH_GAPS",
+ 0x070B: "ER_MTS_RECOVERY_FAILURE",
+ 0x070C: "ER_MTS_RESET_WORKERS",
+ 0x070D: "ER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2",
+ 0x070E: "ER_SLAVE_SILENT_RETRY_TRANSACTION",
+ 0x070F: "ER_DISCARD_FK_CHECKS_RUNNING",
0x0710: "ER_TABLE_SCHEMA_MISMATCH",
0x0711: "ER_TABLE_IN_SYSTEM_TABLESPACE",
0x0712: "ER_IO_READ_ERROR",
@@ -822,12 +822,12 @@
0x0717: "ER_INTERNAL_ERROR",
0x0718: "ER_INNODB_IMPORT_ERROR",
0x0719: "ER_INNODB_INDEX_CORRUPT",
- 0x071a: "ER_INVALID_YEAR_COLUMN_LENGTH",
- 0x071b: "ER_NOT_VALID_PASSWORD",
- 0x071c: "ER_MUST_CHANGE_PASSWORD",
- 0x071d: "ER_FK_NO_INDEX_CHILD",
- 0x071e: "ER_FK_NO_INDEX_PARENT",
- 0x071f: "ER_FK_FAIL_ADD_SYSTEM",
+ 0x071A: "ER_INVALID_YEAR_COLUMN_LENGTH",
+ 0x071B: "ER_NOT_VALID_PASSWORD",
+ 0x071C: "ER_MUST_CHANGE_PASSWORD",
+ 0x071D: "ER_FK_NO_INDEX_CHILD",
+ 0x071E: "ER_FK_NO_INDEX_PARENT",
+ 0x071F: "ER_FK_FAIL_ADD_SYSTEM",
0x0720: "ER_FK_CANNOT_OPEN_PARENT",
0x0721: "ER_FK_INCORRECT_OPTION",
0x0722: "ER_FK_DUP_NAME",
@@ -838,12 +838,12 @@
0x0727: "ER_DUP_INDEX",
0x0728: "ER_FK_COLUMN_CANNOT_CHANGE",
0x0729: "ER_FK_COLUMN_CANNOT_CHANGE_CHILD",
- 0x072a: "ER_UNUSED5",
- 0x072b: "ER_MALFORMED_PACKET",
- 0x072c: "ER_READ_ONLY_MODE",
- 0x072d: "ER_GTID_NEXT_TYPE_UNDEFINED_GTID",
- 0x072e: "ER_VARIABLE_NOT_SETTABLE_IN_SP",
- 0x072f: "ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF",
+ 0x072A: "ER_UNUSED5",
+ 0x072B: "ER_MALFORMED_PACKET",
+ 0x072C: "ER_READ_ONLY_MODE",
+ 0x072D: "ER_GTID_NEXT_TYPE_UNDEFINED_GTID",
+ 0x072E: "ER_VARIABLE_NOT_SETTABLE_IN_SP",
+ 0x072F: "ER_CANT_SET_GTID_PURGED_WHEN_GTID_MODE_IS_OFF",
0x0730: "ER_CANT_SET_GTID_PURGED_WHEN_GTID_EXECUTED_IS_NOT_EMPTY",
0x0731: "ER_CANT_SET_GTID_PURGED_WHEN_OWNED_GTIDS_IS_NOT_EMPTY",
0x0732: "ER_GTID_PURGED_WAS_CHANGED",
@@ -854,12 +854,12 @@
0x0737: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COPY",
0x0738: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_PARTITION",
0x0739: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_RENAME",
- 0x073a: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE",
- 0x073b: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK",
- 0x073c: "ER_UNUSED6",
- 0x073d: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK",
- 0x073e: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC",
- 0x073f: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS",
+ 0x073A: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_COLUMN_TYPE",
+ 0x073B: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FK_CHECK",
+ 0x073C: "ER_UNUSED6",
+ 0x073D: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_NOPK",
+ 0x073E: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_AUTOINC",
+ 0x073F: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_HIDDEN_FTS",
0x0740: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_CHANGE_FTS",
0x0741: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_FTS",
0x0742: "ER_SQL_SLAVE_SKIP_COUNTER_NOT_SETTABLE_IN_GTID_MODE",
@@ -870,12 +870,12 @@
0x0747: "ER_ROW_IN_WRONG_PARTITION",
0x0748: "ER_MTS_EVENT_BIGGER_PENDING_JOBS_SIZE_MAX",
0x0749: "ER_INNODB_NO_FT_USES_PARSER",
- 0x074a: "ER_BINLOG_LOGICAL_CORRUPTION",
- 0x074b: "ER_WARN_PURGE_LOG_IN_USE",
- 0x074c: "ER_WARN_PURGE_LOG_IS_ACTIVE",
- 0x074d: "ER_AUTO_INCREMENT_CONFLICT",
- 0x074e: "WARN_ON_BLOCKHOLE_IN_RBR",
- 0x074f: "ER_SLAVE_MI_INIT_REPOSITORY",
+ 0x074A: "ER_BINLOG_LOGICAL_CORRUPTION",
+ 0x074B: "ER_WARN_PURGE_LOG_IN_USE",
+ 0x074C: "ER_WARN_PURGE_LOG_IS_ACTIVE",
+ 0x074D: "ER_AUTO_INCREMENT_CONFLICT",
+ 0x074E: "WARN_ON_BLOCKHOLE_IN_RBR",
+ 0x074F: "ER_SLAVE_MI_INIT_REPOSITORY",
0x0750: "ER_SLAVE_RLI_INIT_REPOSITORY",
0x0751: "ER_ACCESS_DENIED_CHANGE_USER_ERROR",
0x0752: "ER_INNODB_READ_ONLY",
@@ -886,477 +886,477 @@
0x0757: "ER_INNODB_FT_AUX_NOT_HEX_ID",
0x0758: "ER_OLD_TEMPORALS_UPGRADED",
0x0759: "ER_INNODB_FORCED_RECOVERY",
- 0x075a: "ER_AES_INVALID_IV",
- 0x075b: "ER_PLUGIN_CANNOT_BE_UNINSTALLED",
- 0x075c: "ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_ASSIGNED_GTID",
- 0x075d: "ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER",
- 0x075e: "ER_MISSING_KEY",
+ 0x075A: "ER_AES_INVALID_IV",
+ 0x075B: "ER_PLUGIN_CANNOT_BE_UNINSTALLED",
+ 0x075C: "ER_GTID_UNSAFE_BINLOG_SPLITTABLE_STATEMENT_AND_ASSIGNED_GTID",
+ 0x075D: "ER_SLAVE_HAS_MORE_GTIDS_THAN_MASTER",
+ 0x075E: "ER_MISSING_KEY",
0x0772: "ER_SLAVE_IO_THREAD_MUST_STOP",
- 0x0bb8: "ER_FILE_CORRUPT",
- 0x0bb9: "ER_ERROR_ON_MASTER",
- 0x0bba: "ER_INCONSISTENT_ERROR",
- 0x0bbb: "ER_STORAGE_ENGINE_NOT_LOADED",
- 0x0bbc: "ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER",
- 0x0bbd: "ER_WARN_LEGACY_SYNTAX_CONVERTED",
- 0x0bbe: "ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN",
- 0x0bbf: "ER_CANNOT_DISCARD_TEMPORARY_TABLE",
- 0x0bc0: "ER_FK_DEPTH_EXCEEDED",
- 0x0bc1: "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2",
- 0x0bc2: "ER_WARN_TRIGGER_DOESNT_HAVE_CREATED",
- 0x0bc3: "ER_REFERENCED_TRG_DOES_NOT_EXIST",
- 0x0bc4: "ER_EXPLAIN_NOT_SUPPORTED",
- 0x0bc5: "ER_INVALID_FIELD_SIZE",
- 0x0bc6: "ER_MISSING_HA_CREATE_OPTION",
- 0x0bc7: "ER_ENGINE_OUT_OF_MEMORY",
- 0x0bc8: "ER_PASSWORD_EXPIRE_ANONYMOUS_USER",
- 0x0bc9: "ER_SLAVE_SQL_THREAD_MUST_STOP",
- 0x0bca: "ER_NO_FT_MATERIALIZED_SUBQUERY",
- 0x0bcb: "ER_INNODB_UNDO_LOG_FULL",
- 0x0bcc: "ER_INVALID_ARGUMENT_FOR_LOGARITHM",
- 0x0bcd: "ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP",
- 0x0bce: "ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO",
- 0x0bcf: "ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS",
- 0x0bd0: "ER_QUERY_TIMEOUT",
- 0x0bd1: "ER_NON_RO_SELECT_DISABLE_TIMER",
- 0x0bd2: "ER_DUP_LIST_ENTRY",
- 0x0bd3: "ER_SQL_MODE_NO_EFFECT",
- 0x0bd4: "ER_AGGREGATE_ORDER_FOR_UNION",
- 0x0bd5: "ER_AGGREGATE_ORDER_NON_AGG_QUERY",
- 0x0bd6: "ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR",
- 0x0bd7: "ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER",
- 0x0bd8: "ER_SERVER_OFFLINE_MODE",
- 0x0bd9: "ER_GIS_DIFFERENT_SRIDS",
- 0x0bda: "ER_GIS_UNSUPPORTED_ARGUMENT",
- 0x0bdb: "ER_GIS_UNKNOWN_ERROR",
- 0x0bdc: "ER_GIS_UNKNOWN_EXCEPTION",
- 0x0bdd: "ER_GIS_INVALID_DATA",
- 0x0bde: "ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION",
- 0x0bdf: "ER_BOOST_GEOMETRY_CENTROID_EXCEPTION",
- 0x0be0: "ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION",
- 0x0be1: "ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION",
- 0x0be2: "ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION",
- 0x0be3: "ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION",
- 0x0be4: "ER_STD_BAD_ALLOC_ERROR",
- 0x0be5: "ER_STD_DOMAIN_ERROR",
- 0x0be6: "ER_STD_LENGTH_ERROR",
- 0x0be7: "ER_STD_INVALID_ARGUMENT",
- 0x0be8: "ER_STD_OUT_OF_RANGE_ERROR",
- 0x0be9: "ER_STD_OVERFLOW_ERROR",
- 0x0bea: "ER_STD_RANGE_ERROR",
- 0x0beb: "ER_STD_UNDERFLOW_ERROR",
- 0x0bec: "ER_STD_LOGIC_ERROR",
- 0x0bed: "ER_STD_RUNTIME_ERROR",
- 0x0bee: "ER_STD_UNKNOWN_EXCEPTION",
- 0x0bef: "ER_GIS_DATA_WRONG_ENDIANESS",
- 0x0bf0: "ER_CHANGE_MASTER_PASSWORD_LENGTH",
- 0x0bf1: "ER_USER_LOCK_WRONG_NAME",
- 0x0bf2: "ER_USER_LOCK_DEADLOCK",
- 0x0bf3: "ER_REPLACE_INACCESSIBLE_ROWS",
- 0x0bf4: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS",
- 0x0bf5: "ER_ILLEGAL_USER_VAR",
- 0x0bf6: "ER_GTID_MODE_OFF",
- 0x0bf7: "ER_UNSUPPORTED_BY_REPLICATION_THREAD",
- 0x0bf8: "ER_INCORRECT_TYPE",
- 0x0bf9: "ER_FIELD_IN_ORDER_NOT_SELECT",
- 0x0bfa: "ER_AGGREGATE_IN_ORDER_NOT_SELECT",
- 0x0bfb: "ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN",
- 0x0bfc: "ER_NET_OK_PACKET_TOO_LARGE",
- 0x0bfd: "ER_INVALID_JSON_DATA",
- 0x0bfe: "ER_INVALID_GEOJSON_MISSING_MEMBER",
- 0x0bff: "ER_INVALID_GEOJSON_WRONG_TYPE",
- 0x0c00: "ER_INVALID_GEOJSON_UNSPECIFIED",
- 0x0c01: "ER_DIMENSION_UNSUPPORTED",
- 0x0c02: "ER_SLAVE_CHANNEL_DOES_NOT_EXIST",
- 0x0c03: "ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT",
- 0x0c04: "ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG",
- 0x0c05: "ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY",
- 0x0c06: "ER_SLAVE_CHANNEL_DELETE",
- 0x0c07: "ER_SLAVE_MULTIPLE_CHANNELS_CMD",
- 0x0c08: "ER_SLAVE_MAX_CHANNELS_EXCEEDED",
- 0x0c09: "ER_SLAVE_CHANNEL_MUST_STOP",
- 0x0c0a: "ER_SLAVE_CHANNEL_NOT_RUNNING",
- 0x0c0b: "ER_SLAVE_CHANNEL_WAS_RUNNING",
- 0x0c0c: "ER_SLAVE_CHANNEL_WAS_NOT_RUNNING",
- 0x0c0d: "ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP",
- 0x0c0e: "ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER",
- 0x0c0f: "ER_WRONG_FIELD_WITH_GROUP_V2",
- 0x0c10: "ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2",
- 0x0c11: "ER_WARN_DEPRECATED_SYSVAR_UPDATE",
- 0x0c12: "ER_WARN_DEPRECATED_SQLMODE",
- 0x0c13: "ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID",
- 0x0c14: "ER_GROUP_REPLICATION_CONFIGURATION",
- 0x0c15: "ER_GROUP_REPLICATION_RUNNING",
- 0x0c16: "ER_GROUP_REPLICATION_APPLIER_INIT_ERROR",
- 0x0c17: "ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT",
- 0x0c18: "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR",
- 0x0c19: "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR",
- 0x0c1a: "ER_BEFORE_DML_VALIDATION_ERROR",
- 0x0c1b: "ER_PREVENTS_VARIABLE_WITHOUT_RBR",
- 0x0c1c: "ER_RUN_HOOK_ERROR",
- 0x0c1d: "ER_TRANSACTION_ROLLBACK_DURING_COMMIT",
- 0x0c1e: "ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED",
- 0x0c1f: "ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN",
- 0x0c20: "ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN",
- 0x0c21: "ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN",
- 0x0c22: "ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN",
- 0x0c23: "ER_GENERATED_COLUMN_NON_PRIOR",
- 0x0c24: "ER_DEPENDENT_BY_GENERATED_COLUMN",
- 0x0c25: "ER_GENERATED_COLUMN_REF_AUTO_INC",
- 0x0c26: "ER_FEATURE_NOT_AVAILABLE",
- 0x0c27: "ER_CANT_SET_GTID_MODE",
- 0x0c28: "ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF",
- 0x0c29: "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION",
- 0x0c2a: "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON",
- 0x0c2b: "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF",
- 0x0c2c: "ER_CANT_ENFORCE_GTID_CONSISTENCY_WITH_ONGOING_GTID_VIOLATING_TX",
- 0x0c2d: "ER_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TX",
- 0x0c2e: "ER_ACCOUNT_HAS_BEEN_LOCKED",
- 0x0c2f: "ER_WRONG_TABLESPACE_NAME",
- 0x0c30: "ER_TABLESPACE_IS_NOT_EMPTY",
- 0x0c31: "ER_WRONG_FILE_NAME",
- 0x0c32: "ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION",
- 0x0c33: "ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR",
- 0x0c34: "ER_WARN_BAD_MAX_EXECUTION_TIME",
- 0x0c35: "ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME",
- 0x0c36: "ER_WARN_CONFLICTING_HINT",
- 0x0c37: "ER_WARN_UNKNOWN_QB_NAME",
- 0x0c38: "ER_UNRESOLVED_HINT_NAME",
- 0x0c39: "ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE",
- 0x0c3a: "ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED",
- 0x0c3b: "ER_LOCKING_SERVICE_WRONG_NAME",
- 0x0c3c: "ER_LOCKING_SERVICE_DEADLOCK",
- 0x0c3d: "ER_LOCKING_SERVICE_TIMEOUT",
- 0x0c3e: "ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED",
- 0x0c3f: "ER_SQL_MODE_MERGED",
- 0x0c40: "ER_VTOKEN_PLUGIN_TOKEN_MISMATCH",
- 0x0c41: "ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND",
- 0x0c42: "ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID",
- 0x0c43: "ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED",
- 0x0c44: "ER_INVALID_JSON_TEXT",
- 0x0c45: "ER_INVALID_JSON_TEXT_IN_PARAM",
- 0x0c46: "ER_INVALID_JSON_BINARY_DATA",
- 0x0c47: "ER_INVALID_JSON_PATH",
- 0x0c48: "ER_INVALID_JSON_CHARSET",
- 0x0c49: "ER_INVALID_JSON_CHARSET_IN_FUNCTION",
- 0x0c4a: "ER_INVALID_TYPE_FOR_JSON",
- 0x0c4b: "ER_INVALID_CAST_TO_JSON",
- 0x0c4c: "ER_INVALID_JSON_PATH_CHARSET",
- 0x0c4d: "ER_INVALID_JSON_PATH_WILDCARD",
- 0x0c4e: "ER_JSON_VALUE_TOO_BIG",
- 0x0c4f: "ER_JSON_KEY_TOO_BIG",
- 0x0c50: "ER_JSON_USED_AS_KEY",
- 0x0c51: "ER_JSON_VACUOUS_PATH",
- 0x0c52: "ER_JSON_BAD_ONE_OR_ALL_ARG",
- 0x0c53: "ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE",
- 0x0c54: "ER_INVALID_JSON_VALUE_FOR_CAST",
- 0x0c55: "ER_JSON_DOCUMENT_TOO_DEEP",
- 0x0c56: "ER_JSON_DOCUMENT_NULL_KEY",
- 0x0c57: "ER_SECURE_TRANSPORT_REQUIRED",
- 0x0c58: "ER_NO_SECURE_TRANSPORTS_CONFIGURED",
- 0x0c59: "ER_DISABLED_STORAGE_ENGINE",
- 0x0c5a: "ER_USER_DOES_NOT_EXIST",
- 0x0c5b: "ER_USER_ALREADY_EXISTS",
- 0x0c5c: "ER_AUDIT_API_ABORT",
- 0x0c5d: "ER_INVALID_JSON_PATH_ARRAY_CELL",
- 0x0c5e: "ER_BUFPOOL_RESIZE_INPROGRESS",
- 0x0c5f: "ER_FEATURE_DISABLED_SEE_DOC",
- 0x0c60: "ER_SERVER_ISNT_AVAILABLE",
- 0x0c61: "ER_SESSION_WAS_KILLED",
- 0x0c62: "ER_CAPACITY_EXCEEDED",
- 0x0c63: "ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER",
- 0x0c64: "ER_TABLE_NEEDS_UPG_PART",
- 0x0c65: "ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID",
- 0x0c66: "ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL",
- 0x0c67: "ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT",
- 0x0c68: "ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE",
- 0x0c69: "ER_LOCK_REFUSED_BY_ENGINE",
- 0x0c6a: "ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN",
- 0x0c6b: "ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE",
- 0x0c6c: "ER_MASTER_KEY_ROTATION_ERROR_BY_SE",
- 0x0c6d: "ER_MASTER_KEY_ROTATION_BINLOG_FAILED",
- 0x0c6e: "ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE",
- 0x0c6f: "ER_TABLESPACE_CANNOT_ENCRYPT",
- 0x0c70: "ER_INVALID_ENCRYPTION_OPTION",
- 0x0c71: "ER_CANNOT_FIND_KEY_IN_KEYRING",
- 0x0c72: "ER_CAPACITY_EXCEEDED_IN_PARSER",
- 0x0c73: "ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE",
- 0x0c74: "ER_KEYRING_UDF_KEYRING_SERVICE_ERROR",
- 0x0c75: "ER_USER_COLUMN_OLD_LENGTH",
- 0x0c76: "ER_CANT_RESET_MASTER",
- 0x0c77: "ER_GROUP_REPLICATION_MAX_GROUP_SIZE",
- 0x0c78: "ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED",
- 0x0c79: "ER_TABLE_REFERENCED",
- 0x0c7a: "ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE",
- 0x0c7b: "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO",
- 0x0c7c: "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID",
- 0x0c7d: "ER_XA_RETRY",
- 0x0c7e: "ER_KEYRING_AWS_UDF_AWS_KMS_ERROR",
- 0x0c7f: "ER_BINLOG_UNSAFE_XA",
- 0x0c80: "ER_UDF_ERROR",
- 0x0c81: "ER_KEYRING_MIGRATION_FAILURE",
- 0x0c82: "ER_KEYRING_ACCESS_DENIED_ERROR",
- 0x0c83: "ER_KEYRING_MIGRATION_STATUS",
- 0x0c84: "ER_PLUGIN_FAILED_TO_OPEN_TABLES",
- 0x0c85: "ER_PLUGIN_FAILED_TO_OPEN_TABLE",
- 0x0c86: "ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED",
- 0x0c87: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET",
- 0x0c88: "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY",
- 0x0c89: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED",
- 0x0c8a: "ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED",
- 0x0c8b: "ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE",
- 0x0c8c: "ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED",
- 0x0c8d: "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS",
- 0x0c8e: "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE",
- 0x0c8f: "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT",
- 0x0c90: "ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED",
- 0x0c91: "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE",
- 0x0c92: "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE",
- 0x0c93: "ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR",
- 0x0c94: "ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY",
- 0x0c95: "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY",
- 0x0c96: "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS",
- 0x0c97: "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC",
- 0x0c98: "ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER",
- 0x0c99: "ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER",
- 0x0c9a: "WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP",
- 0x0c9b: "ER_XA_REPLICATION_FILTERS",
- 0x0dac: "ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE",
- 0x0dad: "ER_ACL_OPERATION_FAILED",
- 0x0dae: "ER_UNSUPPORTED_INDEX_ALGORITHM",
- 0x0daf: "ER_NO_SUCH_DB",
- 0x0db0: "ER_TOO_BIG_ENUM",
- 0x0db1: "ER_TOO_LONG_SET_ENUM_VALUE",
- 0x0db2: "ER_INVALID_DD_OBJECT",
- 0x0db3: "ER_UPDATING_DD_TABLE",
- 0x0db4: "ER_INVALID_DD_OBJECT_ID",
- 0x0db5: "ER_INVALID_DD_OBJECT_NAME",
- 0x0db6: "ER_TABLESPACE_MISSING_WITH_NAME",
- 0x0db7: "ER_TOO_LONG_ROUTINE_COMMENT",
- 0x0db8: "ER_SP_LOAD_FAILED",
- 0x0db9: "ER_INVALID_BITWISE_OPERANDS_SIZE",
- 0x0dba: "ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE",
- 0x0dbb: "ER_WARN_UNSUPPORTED_HINT",
- 0x0dbc: "ER_UNEXPECTED_GEOMETRY_TYPE",
- 0x0dbd: "ER_SRS_PARSE_ERROR",
- 0x0dbe: "ER_SRS_PROJ_PARAMETER_MISSING",
- 0x0dbf: "ER_WARN_SRS_NOT_FOUND",
- 0x0dc0: "ER_SRS_NOT_CARTESIAN",
- 0x0dc1: "ER_SRS_NOT_CARTESIAN_UNDEFINED",
- 0x0dc2: "ER_PK_INDEX_CANT_BE_INVISIBLE",
- 0x0dc3: "ER_UNKNOWN_AUTHID",
- 0x0dc4: "ER_FAILED_ROLE_GRANT",
- 0x0dc5: "ER_OPEN_ROLE_TABLES",
- 0x0dc6: "ER_FAILED_DEFAULT_ROLES",
- 0x0dc7: "ER_COMPONENTS_NO_SCHEME",
- 0x0dc8: "ER_COMPONENTS_NO_SCHEME_SERVICE",
- 0x0dc9: "ER_COMPONENTS_CANT_LOAD",
- 0x0dca: "ER_ROLE_NOT_GRANTED",
- 0x0dcb: "ER_FAILED_REVOKE_ROLE",
- 0x0dcc: "ER_RENAME_ROLE",
- 0x0dcd: "ER_COMPONENTS_CANT_ACQUIRE_SERVICE_IMPLEMENTATION",
- 0x0dce: "ER_COMPONENTS_CANT_SATISFY_DEPENDENCY",
- 0x0dcf: "ER_COMPONENTS_LOAD_CANT_REGISTER_SERVICE_IMPLEMENTATION",
- 0x0dd0: "ER_COMPONENTS_LOAD_CANT_INITIALIZE",
- 0x0dd1: "ER_COMPONENTS_UNLOAD_NOT_LOADED",
- 0x0dd2: "ER_COMPONENTS_UNLOAD_CANT_DEINITIALIZE",
- 0x0dd3: "ER_COMPONENTS_CANT_RELEASE_SERVICE",
- 0x0dd4: "ER_COMPONENTS_UNLOAD_CANT_UNREGISTER_SERVICE",
- 0x0dd5: "ER_COMPONENTS_CANT_UNLOAD",
- 0x0dd6: "ER_WARN_UNLOAD_THE_NOT_PERSISTED",
- 0x0dd7: "ER_COMPONENT_TABLE_INCORRECT",
- 0x0dd8: "ER_COMPONENT_MANIPULATE_ROW_FAILED",
- 0x0dd9: "ER_COMPONENTS_UNLOAD_DUPLICATE_IN_GROUP",
- 0x0dda: "ER_CANT_SET_GTID_PURGED_DUE_SETS_CONSTRAINTS",
- 0x0ddb: "ER_CANNOT_LOCK_USER_MANAGEMENT_CACHES",
- 0x0ddc: "ER_SRS_NOT_FOUND",
- 0x0ddd: "ER_VARIABLE_NOT_PERSISTED",
- 0x0dde: "ER_IS_QUERY_INVALID_CLAUSE",
- 0x0ddf: "ER_UNABLE_TO_STORE_STATISTICS",
- 0x0de0: "ER_NO_SYSTEM_SCHEMA_ACCESS",
- 0x0de1: "ER_NO_SYSTEM_TABLESPACE_ACCESS",
- 0x0de2: "ER_NO_SYSTEM_TABLE_ACCESS",
- 0x0de3: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_DICTIONARY_TABLE",
- 0x0de4: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_SYSTEM_TABLE",
- 0x0de5: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_TABLE",
- 0x0de6: "ER_INVALID_OPTION_KEY",
- 0x0de7: "ER_INVALID_OPTION_VALUE",
- 0x0de8: "ER_INVALID_OPTION_KEY_VALUE_PAIR",
- 0x0de9: "ER_INVALID_OPTION_START_CHARACTER",
- 0x0dea: "ER_INVALID_OPTION_END_CHARACTER",
- 0x0deb: "ER_INVALID_OPTION_CHARACTERS",
- 0x0dec: "ER_DUPLICATE_OPTION_KEY",
- 0x0ded: "ER_WARN_SRS_NOT_FOUND_AXIS_ORDER",
- 0x0dee: "ER_NO_ACCESS_TO_NATIVE_FCT",
- 0x0def: "ER_RESET_MASTER_TO_VALUE_OUT_OF_RANGE",
- 0x0df0: "ER_UNRESOLVED_TABLE_LOCK",
- 0x0df1: "ER_DUPLICATE_TABLE_LOCK",
- 0x0df2: "ER_BINLOG_UNSAFE_SKIP_LOCKED",
- 0x0df3: "ER_BINLOG_UNSAFE_NOWAIT",
- 0x0df4: "ER_LOCK_NOWAIT",
- 0x0df5: "ER_CTE_RECURSIVE_REQUIRES_UNION",
- 0x0df6: "ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST",
- 0x0df7: "ER_CTE_RECURSIVE_FORBIDS_AGGREGATION",
- 0x0df8: "ER_CTE_RECURSIVE_FORBIDDEN_JOIN_ORDER",
- 0x0df9: "ER_CTE_RECURSIVE_REQUIRES_SINGLE_REFERENCE",
- 0x0dfa: "ER_SWITCH_TMP_ENGINE",
- 0x0dfb: "ER_WINDOW_NO_SUCH_WINDOW",
- 0x0dfc: "ER_WINDOW_CIRCULARITY_IN_WINDOW_GRAPH",
- 0x0dfd: "ER_WINDOW_NO_CHILD_PARTITIONING",
- 0x0dfe: "ER_WINDOW_NO_INHERIT_FRAME",
- 0x0dff: "ER_WINDOW_NO_REDEFINE_ORDER_BY",
- 0x0e00: "ER_WINDOW_FRAME_START_ILLEGAL",
- 0x0e01: "ER_WINDOW_FRAME_END_ILLEGAL",
- 0x0e02: "ER_WINDOW_FRAME_ILLEGAL",
- 0x0e03: "ER_WINDOW_RANGE_FRAME_ORDER_TYPE",
- 0x0e04: "ER_WINDOW_RANGE_FRAME_TEMPORAL_TYPE",
- 0x0e05: "ER_WINDOW_RANGE_FRAME_NUMERIC_TYPE",
- 0x0e06: "ER_WINDOW_RANGE_BOUND_NOT_CONSTANT",
- 0x0e07: "ER_WINDOW_DUPLICATE_NAME",
- 0x0e08: "ER_WINDOW_ILLEGAL_ORDER_BY",
- 0x0e09: "ER_WINDOW_INVALID_WINDOW_FUNC_USE",
- 0x0e0a: "ER_WINDOW_INVALID_WINDOW_FUNC_ALIAS_USE",
- 0x0e0b: "ER_WINDOW_NESTED_WINDOW_FUNC_USE_IN_WINDOW_SPEC",
- 0x0e0c: "ER_WINDOW_ROWS_INTERVAL_USE",
- 0x0e0d: "ER_WINDOW_NO_GROUP_ORDER",
- 0x0e0e: "ER_WINDOW_EXPLAIN_JSON",
- 0x0e0f: "ER_WINDOW_FUNCTION_IGNORES_FRAME",
- 0x0e10: "ER_WL9236_NOW_UNUSED",
- 0x0e11: "ER_INVALID_NO_OF_ARGS",
- 0x0e12: "ER_FIELD_IN_GROUPING_NOT_GROUP_BY",
- 0x0e13: "ER_TOO_LONG_TABLESPACE_COMMENT",
- 0x0e14: "ER_ENGINE_CANT_DROP_TABLE",
- 0x0e15: "ER_ENGINE_CANT_DROP_MISSING_TABLE",
- 0x0e16: "ER_TABLESPACE_DUP_FILENAME",
- 0x0e17: "ER_DB_DROP_RMDIR2",
- 0x0e18: "ER_IMP_NO_FILES_MATCHED",
- 0x0e19: "ER_IMP_SCHEMA_DOES_NOT_EXIST",
- 0x0e1a: "ER_IMP_TABLE_ALREADY_EXISTS",
- 0x0e1b: "ER_IMP_INCOMPATIBLE_MYSQLD_VERSION",
- 0x0e1c: "ER_IMP_INCOMPATIBLE_DD_VERSION",
- 0x0e1d: "ER_IMP_INCOMPATIBLE_SDI_VERSION",
- 0x0e1e: "ER_WARN_INVALID_HINT",
- 0x0e1f: "ER_VAR_DOES_NOT_EXIST",
- 0x0e20: "ER_LONGITUDE_OUT_OF_RANGE",
- 0x0e21: "ER_LATITUDE_OUT_OF_RANGE",
- 0x0e22: "ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS",
- 0x0e23: "ER_ILLEGAL_PRIVILEGE_LEVEL",
- 0x0e24: "ER_NO_SYSTEM_VIEW_ACCESS",
- 0x0e25: "ER_COMPONENT_FILTER_FLABBERGASTED",
- 0x0e26: "ER_PART_EXPR_TOO_LONG",
- 0x0e27: "ER_UDF_DROP_DYNAMICALLY_REGISTERED",
- 0x0e28: "ER_UNABLE_TO_STORE_COLUMN_STATISTICS",
- 0x0e29: "ER_UNABLE_TO_UPDATE_COLUMN_STATISTICS",
- 0x0e2a: "ER_UNABLE_TO_DROP_COLUMN_STATISTICS",
- 0x0e2b: "ER_UNABLE_TO_BUILD_HISTOGRAM",
- 0x0e2c: "ER_MANDATORY_ROLE",
- 0x0e2d: "ER_MISSING_TABLESPACE_FILE",
- 0x0e2e: "ER_PERSIST_ONLY_ACCESS_DENIED_ERROR",
- 0x0e2f: "ER_CMD_NEED_SUPER",
- 0x0e30: "ER_PATH_IN_DATADIR",
- 0x0e31: "ER_DDL_IN_PROGRESS",
- 0x0e32: "ER_TOO_MANY_CONCURRENT_CLONES",
- 0x0e33: "ER_APPLIER_LOG_EVENT_VALIDATION_ERROR",
- 0x0e34: "ER_CTE_MAX_RECURSION_DEPTH",
- 0x0e35: "ER_NOT_HINT_UPDATABLE_VARIABLE",
- 0x0e36: "ER_CREDENTIALS_CONTRADICT_TO_HISTORY",
- 0x0e37: "ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID",
- 0x0e38: "ER_CLIENT_DOES_NOT_SUPPORT",
- 0x0e39: "ER_I_S_SKIPPED_TABLESPACE",
- 0x0e3a: "ER_TABLESPACE_ENGINE_MISMATCH",
- 0x0e3b: "ER_WRONG_SRID_FOR_COLUMN",
- 0x0e3c: "ER_CANNOT_ALTER_SRID_DUE_TO_INDEX",
- 0x0e3d: "ER_WARN_BINLOG_PARTIAL_UPDATES_DISABLED",
- 0x0e3e: "ER_WARN_BINLOG_V1_ROW_EVENTS_DISABLED",
- 0x0e3f: "ER_WARN_BINLOG_PARTIAL_UPDATES_SUGGESTS_PARTIAL_IMAGES",
- 0x0e40: "ER_COULD_NOT_APPLY_JSON_DIFF",
- 0x0e41: "ER_CORRUPTED_JSON_DIFF",
- 0x0e42: "ER_RESOURCE_GROUP_EXISTS",
- 0x0e43: "ER_RESOURCE_GROUP_NOT_EXISTS",
- 0x0e44: "ER_INVALID_VCPU_ID",
- 0x0e45: "ER_INVALID_VCPU_RANGE",
- 0x0e46: "ER_INVALID_THREAD_PRIORITY",
- 0x0e47: "ER_DISALLOWED_OPERATION",
- 0x0e48: "ER_RESOURCE_GROUP_BUSY",
- 0x0e49: "ER_RESOURCE_GROUP_DISABLED",
- 0x0e4a: "ER_FEATURE_UNSUPPORTED",
- 0x0e4b: "ER_ATTRIBUTE_IGNORED",
- 0x0e4c: "ER_INVALID_THREAD_ID",
- 0x0e4d: "ER_RESOURCE_GROUP_BIND_FAILED",
- 0x0e4e: "ER_INVALID_USE_OF_FORCE_OPTION",
- 0x0e4f: "ER_GROUP_REPLICATION_COMMAND_FAILURE",
- 0x0e50: "ER_SDI_OPERATION_FAILED",
- 0x0e51: "ER_MISSING_JSON_TABLE_VALUE",
- 0x0e52: "ER_WRONG_JSON_TABLE_VALUE",
- 0x0e53: "ER_TF_MUST_HAVE_ALIAS",
- 0x0e54: "ER_TF_FORBIDDEN_JOIN_TYPE",
- 0x0e55: "ER_JT_VALUE_OUT_OF_RANGE",
- 0x0e56: "ER_JT_MAX_NESTED_PATH",
- 0x0e57: "ER_PASSWORD_EXPIRATION_NOT_SUPPORTED_BY_AUTH_METHOD",
- 0x0e58: "ER_INVALID_GEOJSON_CRS_NOT_TOP_LEVEL",
- 0x0e59: "ER_BAD_NULL_ERROR_NOT_IGNORED",
- 0x0e5a: "WARN_USELESS_SPATIAL_INDEX",
- 0x0e5b: "ER_DISK_FULL_NOWAIT",
- 0x0e5c: "ER_PARSE_ERROR_IN_DIGEST_FN",
- 0x0e5d: "ER_UNDISCLOSED_PARSE_ERROR_IN_DIGEST_FN",
- 0x0e5e: "ER_SCHEMA_DIR_EXISTS",
- 0x0e5f: "ER_SCHEMA_DIR_MISSING",
- 0x0e60: "ER_SCHEMA_DIR_CREATE_FAILED",
- 0x0e61: "ER_SCHEMA_DIR_UNKNOWN",
- 0x0e62: "ER_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326",
- 0x0e63: "ER_BINLOG_EXPIRE_LOG_DAYS_AND_SECS_USED_TOGETHER",
- 0x0e64: "ER_REGEXP_BUFFER_OVERFLOW",
- 0x0e65: "ER_REGEXP_ILLEGAL_ARGUMENT",
- 0x0e66: "ER_REGEXP_INDEX_OUTOFBOUNDS_ERROR",
- 0x0e67: "ER_REGEXP_INTERNAL_ERROR",
- 0x0e68: "ER_REGEXP_RULE_SYNTAX",
- 0x0e69: "ER_REGEXP_BAD_ESCAPE_SEQUENCE",
- 0x0e6a: "ER_REGEXP_UNIMPLEMENTED",
- 0x0e6b: "ER_REGEXP_MISMATCHED_PAREN",
- 0x0e6c: "ER_REGEXP_BAD_INTERVAL",
- 0x0e6d: "ER_REGEXP_MAX_LT_MIN",
- 0x0e6e: "ER_REGEXP_INVALID_BACK_REF",
- 0x0e6f: "ER_REGEXP_LOOK_BEHIND_LIMIT",
- 0x0e70: "ER_REGEXP_MISSING_CLOSE_BRACKET",
- 0x0e71: "ER_REGEXP_INVALID_RANGE",
- 0x0e72: "ER_REGEXP_STACK_OVERFLOW",
- 0x0e73: "ER_REGEXP_TIME_OUT",
- 0x0e74: "ER_REGEXP_PATTERN_TOO_BIG",
- 0x0e75: "ER_CANT_SET_ERROR_LOG_SERVICE",
- 0x0e76: "ER_EMPTY_PIPELINE_FOR_ERROR_LOG_SERVICE",
- 0x0e77: "ER_COMPONENT_FILTER_DIAGNOSTICS",
- 0x0e78: "ER_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS",
- 0x0e79: "ER_NOT_IMPLEMENTED_FOR_PROJECTED_SRS",
- 0x0e7a: "ER_NONPOSITIVE_RADIUS",
- 0x0e7b: "ER_RESTART_SERVER_FAILED",
- 0x0e7c: "ER_SRS_MISSING_MANDATORY_ATTRIBUTE",
- 0x0e7d: "ER_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS",
- 0x0e7e: "ER_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE",
- 0x0e7f: "ER_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE",
- 0x0e80: "ER_SRS_ID_ALREADY_EXISTS",
- 0x0e81: "ER_WARN_SRS_ID_ALREADY_EXISTS",
- 0x0e82: "ER_CANT_MODIFY_SRID_0",
- 0x0e83: "ER_WARN_RESERVED_SRID_RANGE",
- 0x0e84: "ER_CANT_MODIFY_SRS_USED_BY_COLUMN",
- 0x0e85: "ER_SRS_INVALID_CHARACTER_IN_ATTRIBUTE",
- 0x0e86: "ER_SRS_ATTRIBUTE_STRING_TOO_LONG",
- 0x0e87: "ER_DEPRECATED_UTF8_ALIAS",
- 0x0e88: "ER_DEPRECATED_NATIONAL",
- 0x0e89: "ER_INVALID_DEFAULT_UTF8MB4_COLLATION",
- 0x0e8a: "ER_UNABLE_TO_COLLECT_LOG_STATUS",
- 0x0e8b: "ER_RESERVED_TABLESPACE_NAME",
- 0x0e8c: "ER_UNABLE_TO_SET_OPTION",
- 0x0e8d: "ER_SLAVE_POSSIBLY_DIVERGED_AFTER_DDL",
- 0x0e8e: "ER_SRS_NOT_GEOGRAPHIC",
- 0x0e8f: "ER_POLYGON_TOO_LARGE",
- 0x0e90: "ER_SPATIAL_UNIQUE_INDEX",
- 0x0e91: "ER_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX",
- 0x0e92: "ER_FK_CANNOT_DROP_PARENT",
- 0x0e93: "ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE",
- 0x0e94: "ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE",
- 0x0e95: "ER_FK_CANNOT_USE_VIRTUAL_COLUMN",
- 0x0e96: "ER_FK_NO_COLUMN_PARENT",
- 0x0f61: "ER_AUTHCACHE_ROLE_TABLES_DODGY",
- 0x11e0: "ER_DISK_FULL",
+ 0x0BB8: "ER_FILE_CORRUPT",
+ 0x0BB9: "ER_ERROR_ON_MASTER",
+ 0x0BBA: "ER_INCONSISTENT_ERROR",
+ 0x0BBB: "ER_STORAGE_ENGINE_NOT_LOADED",
+ 0x0BBC: "ER_GET_STACKED_DA_WITHOUT_ACTIVE_HANDLER",
+ 0x0BBD: "ER_WARN_LEGACY_SYNTAX_CONVERTED",
+ 0x0BBE: "ER_BINLOG_UNSAFE_FULLTEXT_PLUGIN",
+ 0x0BBF: "ER_CANNOT_DISCARD_TEMPORARY_TABLE",
+ 0x0BC0: "ER_FK_DEPTH_EXCEEDED",
+ 0x0BC1: "ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE_V2",
+ 0x0BC2: "ER_WARN_TRIGGER_DOESNT_HAVE_CREATED",
+ 0x0BC3: "ER_REFERENCED_TRG_DOES_NOT_EXIST",
+ 0x0BC4: "ER_EXPLAIN_NOT_SUPPORTED",
+ 0x0BC5: "ER_INVALID_FIELD_SIZE",
+ 0x0BC6: "ER_MISSING_HA_CREATE_OPTION",
+ 0x0BC7: "ER_ENGINE_OUT_OF_MEMORY",
+ 0x0BC8: "ER_PASSWORD_EXPIRE_ANONYMOUS_USER",
+ 0x0BC9: "ER_SLAVE_SQL_THREAD_MUST_STOP",
+ 0x0BCA: "ER_NO_FT_MATERIALIZED_SUBQUERY",
+ 0x0BCB: "ER_INNODB_UNDO_LOG_FULL",
+ 0x0BCC: "ER_INVALID_ARGUMENT_FOR_LOGARITHM",
+ 0x0BCD: "ER_SLAVE_CHANNEL_IO_THREAD_MUST_STOP",
+ 0x0BCE: "ER_WARN_OPEN_TEMP_TABLES_MUST_BE_ZERO",
+ 0x0BCF: "ER_WARN_ONLY_MASTER_LOG_FILE_NO_POS",
+ 0x0BD0: "ER_QUERY_TIMEOUT",
+ 0x0BD1: "ER_NON_RO_SELECT_DISABLE_TIMER",
+ 0x0BD2: "ER_DUP_LIST_ENTRY",
+ 0x0BD3: "ER_SQL_MODE_NO_EFFECT",
+ 0x0BD4: "ER_AGGREGATE_ORDER_FOR_UNION",
+ 0x0BD5: "ER_AGGREGATE_ORDER_NON_AGG_QUERY",
+ 0x0BD6: "ER_SLAVE_WORKER_STOPPED_PREVIOUS_THD_ERROR",
+ 0x0BD7: "ER_DONT_SUPPORT_SLAVE_PRESERVE_COMMIT_ORDER",
+ 0x0BD8: "ER_SERVER_OFFLINE_MODE",
+ 0x0BD9: "ER_GIS_DIFFERENT_SRIDS",
+ 0x0BDA: "ER_GIS_UNSUPPORTED_ARGUMENT",
+ 0x0BDB: "ER_GIS_UNKNOWN_ERROR",
+ 0x0BDC: "ER_GIS_UNKNOWN_EXCEPTION",
+ 0x0BDD: "ER_GIS_INVALID_DATA",
+ 0x0BDE: "ER_BOOST_GEOMETRY_EMPTY_INPUT_EXCEPTION",
+ 0x0BDF: "ER_BOOST_GEOMETRY_CENTROID_EXCEPTION",
+ 0x0BE0: "ER_BOOST_GEOMETRY_OVERLAY_INVALID_INPUT_EXCEPTION",
+ 0x0BE1: "ER_BOOST_GEOMETRY_TURN_INFO_EXCEPTION",
+ 0x0BE2: "ER_BOOST_GEOMETRY_SELF_INTERSECTION_POINT_EXCEPTION",
+ 0x0BE3: "ER_BOOST_GEOMETRY_UNKNOWN_EXCEPTION",
+ 0x0BE4: "ER_STD_BAD_ALLOC_ERROR",
+ 0x0BE5: "ER_STD_DOMAIN_ERROR",
+ 0x0BE6: "ER_STD_LENGTH_ERROR",
+ 0x0BE7: "ER_STD_INVALID_ARGUMENT",
+ 0x0BE8: "ER_STD_OUT_OF_RANGE_ERROR",
+ 0x0BE9: "ER_STD_OVERFLOW_ERROR",
+ 0x0BEA: "ER_STD_RANGE_ERROR",
+ 0x0BEB: "ER_STD_UNDERFLOW_ERROR",
+ 0x0BEC: "ER_STD_LOGIC_ERROR",
+ 0x0BED: "ER_STD_RUNTIME_ERROR",
+ 0x0BEE: "ER_STD_UNKNOWN_EXCEPTION",
+ 0x0BEF: "ER_GIS_DATA_WRONG_ENDIANESS",
+ 0x0BF0: "ER_CHANGE_MASTER_PASSWORD_LENGTH",
+ 0x0BF1: "ER_USER_LOCK_WRONG_NAME",
+ 0x0BF2: "ER_USER_LOCK_DEADLOCK",
+ 0x0BF3: "ER_REPLACE_INACCESSIBLE_ROWS",
+ 0x0BF4: "ER_ALTER_OPERATION_NOT_SUPPORTED_REASON_GIS",
+ 0x0BF5: "ER_ILLEGAL_USER_VAR",
+ 0x0BF6: "ER_GTID_MODE_OFF",
+ 0x0BF7: "ER_UNSUPPORTED_BY_REPLICATION_THREAD",
+ 0x0BF8: "ER_INCORRECT_TYPE",
+ 0x0BF9: "ER_FIELD_IN_ORDER_NOT_SELECT",
+ 0x0BFA: "ER_AGGREGATE_IN_ORDER_NOT_SELECT",
+ 0x0BFB: "ER_INVALID_RPL_WILD_TABLE_FILTER_PATTERN",
+ 0x0BFC: "ER_NET_OK_PACKET_TOO_LARGE",
+ 0x0BFD: "ER_INVALID_JSON_DATA",
+ 0x0BFE: "ER_INVALID_GEOJSON_MISSING_MEMBER",
+ 0x0BFF: "ER_INVALID_GEOJSON_WRONG_TYPE",
+ 0x0C00: "ER_INVALID_GEOJSON_UNSPECIFIED",
+ 0x0C01: "ER_DIMENSION_UNSUPPORTED",
+ 0x0C02: "ER_SLAVE_CHANNEL_DOES_NOT_EXIST",
+ 0x0C03: "ER_SLAVE_MULTIPLE_CHANNELS_HOST_PORT",
+ 0x0C04: "ER_SLAVE_CHANNEL_NAME_INVALID_OR_TOO_LONG",
+ 0x0C05: "ER_SLAVE_NEW_CHANNEL_WRONG_REPOSITORY",
+ 0x0C06: "ER_SLAVE_CHANNEL_DELETE",
+ 0x0C07: "ER_SLAVE_MULTIPLE_CHANNELS_CMD",
+ 0x0C08: "ER_SLAVE_MAX_CHANNELS_EXCEEDED",
+ 0x0C09: "ER_SLAVE_CHANNEL_MUST_STOP",
+ 0x0C0A: "ER_SLAVE_CHANNEL_NOT_RUNNING",
+ 0x0C0B: "ER_SLAVE_CHANNEL_WAS_RUNNING",
+ 0x0C0C: "ER_SLAVE_CHANNEL_WAS_NOT_RUNNING",
+ 0x0C0D: "ER_SLAVE_CHANNEL_SQL_THREAD_MUST_STOP",
+ 0x0C0E: "ER_SLAVE_CHANNEL_SQL_SKIP_COUNTER",
+ 0x0C0F: "ER_WRONG_FIELD_WITH_GROUP_V2",
+ 0x0C10: "ER_MIX_OF_GROUP_FUNC_AND_FIELDS_V2",
+ 0x0C11: "ER_WARN_DEPRECATED_SYSVAR_UPDATE",
+ 0x0C12: "ER_WARN_DEPRECATED_SQLMODE",
+ 0x0C13: "ER_CANNOT_LOG_PARTIAL_DROP_DATABASE_WITH_GTID",
+ 0x0C14: "ER_GROUP_REPLICATION_CONFIGURATION",
+ 0x0C15: "ER_GROUP_REPLICATION_RUNNING",
+ 0x0C16: "ER_GROUP_REPLICATION_APPLIER_INIT_ERROR",
+ 0x0C17: "ER_GROUP_REPLICATION_STOP_APPLIER_THREAD_TIMEOUT",
+ 0x0C18: "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_SESSION_ERROR",
+ 0x0C19: "ER_GROUP_REPLICATION_COMMUNICATION_LAYER_JOIN_ERROR",
+ 0x0C1A: "ER_BEFORE_DML_VALIDATION_ERROR",
+ 0x0C1B: "ER_PREVENTS_VARIABLE_WITHOUT_RBR",
+ 0x0C1C: "ER_RUN_HOOK_ERROR",
+ 0x0C1D: "ER_TRANSACTION_ROLLBACK_DURING_COMMIT",
+ 0x0C1E: "ER_GENERATED_COLUMN_FUNCTION_IS_NOT_ALLOWED",
+ 0x0C1F: "ER_UNSUPPORTED_ALTER_INPLACE_ON_VIRTUAL_COLUMN",
+ 0x0C20: "ER_WRONG_FK_OPTION_FOR_GENERATED_COLUMN",
+ 0x0C21: "ER_NON_DEFAULT_VALUE_FOR_GENERATED_COLUMN",
+ 0x0C22: "ER_UNSUPPORTED_ACTION_ON_GENERATED_COLUMN",
+ 0x0C23: "ER_GENERATED_COLUMN_NON_PRIOR",
+ 0x0C24: "ER_DEPENDENT_BY_GENERATED_COLUMN",
+ 0x0C25: "ER_GENERATED_COLUMN_REF_AUTO_INC",
+ 0x0C26: "ER_FEATURE_NOT_AVAILABLE",
+ 0x0C27: "ER_CANT_SET_GTID_MODE",
+ 0x0C28: "ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF",
+ 0x0C29: "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION",
+ 0x0C2A: "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON",
+ 0x0C2B: "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF",
+ 0x0C2C: "ER_CANT_ENFORCE_GTID_CONSISTENCY_WITH_ONGOING_GTID_VIOLATING_TX",
+ 0x0C2D: "ER_ENFORCE_GTID_CONSISTENCY_WARN_WITH_ONGOING_GTID_VIOLATING_TX",
+ 0x0C2E: "ER_ACCOUNT_HAS_BEEN_LOCKED",
+ 0x0C2F: "ER_WRONG_TABLESPACE_NAME",
+ 0x0C30: "ER_TABLESPACE_IS_NOT_EMPTY",
+ 0x0C31: "ER_WRONG_FILE_NAME",
+ 0x0C32: "ER_BOOST_GEOMETRY_INCONSISTENT_TURNS_EXCEPTION",
+ 0x0C33: "ER_WARN_OPTIMIZER_HINT_SYNTAX_ERROR",
+ 0x0C34: "ER_WARN_BAD_MAX_EXECUTION_TIME",
+ 0x0C35: "ER_WARN_UNSUPPORTED_MAX_EXECUTION_TIME",
+ 0x0C36: "ER_WARN_CONFLICTING_HINT",
+ 0x0C37: "ER_WARN_UNKNOWN_QB_NAME",
+ 0x0C38: "ER_UNRESOLVED_HINT_NAME",
+ 0x0C39: "ER_WARN_ON_MODIFYING_GTID_EXECUTED_TABLE",
+ 0x0C3A: "ER_PLUGGABLE_PROTOCOL_COMMAND_NOT_SUPPORTED",
+ 0x0C3B: "ER_LOCKING_SERVICE_WRONG_NAME",
+ 0x0C3C: "ER_LOCKING_SERVICE_DEADLOCK",
+ 0x0C3D: "ER_LOCKING_SERVICE_TIMEOUT",
+ 0x0C3E: "ER_GIS_MAX_POINTS_IN_GEOMETRY_OVERFLOWED",
+ 0x0C3F: "ER_SQL_MODE_MERGED",
+ 0x0C40: "ER_VTOKEN_PLUGIN_TOKEN_MISMATCH",
+ 0x0C41: "ER_VTOKEN_PLUGIN_TOKEN_NOT_FOUND",
+ 0x0C42: "ER_CANT_SET_VARIABLE_WHEN_OWNING_GTID",
+ 0x0C43: "ER_SLAVE_CHANNEL_OPERATION_NOT_ALLOWED",
+ 0x0C44: "ER_INVALID_JSON_TEXT",
+ 0x0C45: "ER_INVALID_JSON_TEXT_IN_PARAM",
+ 0x0C46: "ER_INVALID_JSON_BINARY_DATA",
+ 0x0C47: "ER_INVALID_JSON_PATH",
+ 0x0C48: "ER_INVALID_JSON_CHARSET",
+ 0x0C49: "ER_INVALID_JSON_CHARSET_IN_FUNCTION",
+ 0x0C4A: "ER_INVALID_TYPE_FOR_JSON",
+ 0x0C4B: "ER_INVALID_CAST_TO_JSON",
+ 0x0C4C: "ER_INVALID_JSON_PATH_CHARSET",
+ 0x0C4D: "ER_INVALID_JSON_PATH_WILDCARD",
+ 0x0C4E: "ER_JSON_VALUE_TOO_BIG",
+ 0x0C4F: "ER_JSON_KEY_TOO_BIG",
+ 0x0C50: "ER_JSON_USED_AS_KEY",
+ 0x0C51: "ER_JSON_VACUOUS_PATH",
+ 0x0C52: "ER_JSON_BAD_ONE_OR_ALL_ARG",
+ 0x0C53: "ER_NUMERIC_JSON_VALUE_OUT_OF_RANGE",
+ 0x0C54: "ER_INVALID_JSON_VALUE_FOR_CAST",
+ 0x0C55: "ER_JSON_DOCUMENT_TOO_DEEP",
+ 0x0C56: "ER_JSON_DOCUMENT_NULL_KEY",
+ 0x0C57: "ER_SECURE_TRANSPORT_REQUIRED",
+ 0x0C58: "ER_NO_SECURE_TRANSPORTS_CONFIGURED",
+ 0x0C59: "ER_DISABLED_STORAGE_ENGINE",
+ 0x0C5A: "ER_USER_DOES_NOT_EXIST",
+ 0x0C5B: "ER_USER_ALREADY_EXISTS",
+ 0x0C5C: "ER_AUDIT_API_ABORT",
+ 0x0C5D: "ER_INVALID_JSON_PATH_ARRAY_CELL",
+ 0x0C5E: "ER_BUFPOOL_RESIZE_INPROGRESS",
+ 0x0C5F: "ER_FEATURE_DISABLED_SEE_DOC",
+ 0x0C60: "ER_SERVER_ISNT_AVAILABLE",
+ 0x0C61: "ER_SESSION_WAS_KILLED",
+ 0x0C62: "ER_CAPACITY_EXCEEDED",
+ 0x0C63: "ER_CAPACITY_EXCEEDED_IN_RANGE_OPTIMIZER",
+ 0x0C64: "ER_TABLE_NEEDS_UPG_PART",
+ 0x0C65: "ER_CANT_WAIT_FOR_EXECUTED_GTID_SET_WHILE_OWNING_A_GTID",
+ 0x0C66: "ER_CANNOT_ADD_FOREIGN_BASE_COL_VIRTUAL",
+ 0x0C67: "ER_CANNOT_CREATE_VIRTUAL_INDEX_CONSTRAINT",
+ 0x0C68: "ER_ERROR_ON_MODIFYING_GTID_EXECUTED_TABLE",
+ 0x0C69: "ER_LOCK_REFUSED_BY_ENGINE",
+ 0x0C6A: "ER_UNSUPPORTED_ALTER_ONLINE_ON_VIRTUAL_COLUMN",
+ 0x0C6B: "ER_MASTER_KEY_ROTATION_NOT_SUPPORTED_BY_SE",
+ 0x0C6C: "ER_MASTER_KEY_ROTATION_ERROR_BY_SE",
+ 0x0C6D: "ER_MASTER_KEY_ROTATION_BINLOG_FAILED",
+ 0x0C6E: "ER_MASTER_KEY_ROTATION_SE_UNAVAILABLE",
+ 0x0C6F: "ER_TABLESPACE_CANNOT_ENCRYPT",
+ 0x0C70: "ER_INVALID_ENCRYPTION_OPTION",
+ 0x0C71: "ER_CANNOT_FIND_KEY_IN_KEYRING",
+ 0x0C72: "ER_CAPACITY_EXCEEDED_IN_PARSER",
+ 0x0C73: "ER_UNSUPPORTED_ALTER_ENCRYPTION_INPLACE",
+ 0x0C74: "ER_KEYRING_UDF_KEYRING_SERVICE_ERROR",
+ 0x0C75: "ER_USER_COLUMN_OLD_LENGTH",
+ 0x0C76: "ER_CANT_RESET_MASTER",
+ 0x0C77: "ER_GROUP_REPLICATION_MAX_GROUP_SIZE",
+ 0x0C78: "ER_CANNOT_ADD_FOREIGN_BASE_COL_STORED",
+ 0x0C79: "ER_TABLE_REFERENCED",
+ 0x0C7A: "ER_PARTITION_ENGINE_DEPRECATED_FOR_TABLE",
+ 0x0C7B: "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID_ZERO",
+ 0x0C7C: "ER_WARN_USING_GEOMFROMWKB_TO_SET_SRID",
+ 0x0C7D: "ER_XA_RETRY",
+ 0x0C7E: "ER_KEYRING_AWS_UDF_AWS_KMS_ERROR",
+ 0x0C7F: "ER_BINLOG_UNSAFE_XA",
+ 0x0C80: "ER_UDF_ERROR",
+ 0x0C81: "ER_KEYRING_MIGRATION_FAILURE",
+ 0x0C82: "ER_KEYRING_ACCESS_DENIED_ERROR",
+ 0x0C83: "ER_KEYRING_MIGRATION_STATUS",
+ 0x0C84: "ER_PLUGIN_FAILED_TO_OPEN_TABLES",
+ 0x0C85: "ER_PLUGIN_FAILED_TO_OPEN_TABLE",
+ 0x0C86: "ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED",
+ 0x0C87: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET",
+ 0x0C88: "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY",
+ 0x0C89: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED",
+ 0x0C8A: "ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED",
+ 0x0C8B: "ER_AUDIT_LOG_UDF_INSUFFICIENT_PRIVILEGE",
+ 0x0C8C: "ER_AUDIT_LOG_SUPER_PRIVILEGE_REQUIRED",
+ 0x0C8D: "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS",
+ 0x0C8E: "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_TYPE",
+ 0x0C8F: "ER_AUDIT_LOG_UDF_INVALID_ARGUMENT_COUNT",
+ 0x0C90: "ER_AUDIT_LOG_HAS_NOT_BEEN_INSTALLED",
+ 0x0C91: "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_TYPE",
+ 0x0C92: "ER_AUDIT_LOG_UDF_READ_INVALID_MAX_ARRAY_LENGTH_ARG_VALUE",
+ 0x0C93: "ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR",
+ 0x0C94: "ER_AUDIT_LOG_JSON_FILTER_NAME_CANNOT_BE_EMPTY",
+ 0x0C95: "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY",
+ 0x0C96: "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXISTS",
+ 0x0C97: "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC",
+ 0x0C98: "ER_AUDIT_LOG_USER_NAME_INVALID_CHARACTER",
+ 0x0C99: "ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER",
+ 0x0C9A: "WARN_DEPRECATED_MAXDB_SQL_MODE_FOR_TIMESTAMP",
+ 0x0C9B: "ER_XA_REPLICATION_FILTERS",
+ 0x0DAC: "ER_UNSUPPORT_COMPRESSED_TEMPORARY_TABLE",
+ 0x0DAD: "ER_ACL_OPERATION_FAILED",
+ 0x0DAE: "ER_UNSUPPORTED_INDEX_ALGORITHM",
+ 0x0DAF: "ER_NO_SUCH_DB",
+ 0x0DB0: "ER_TOO_BIG_ENUM",
+ 0x0DB1: "ER_TOO_LONG_SET_ENUM_VALUE",
+ 0x0DB2: "ER_INVALID_DD_OBJECT",
+ 0x0DB3: "ER_UPDATING_DD_TABLE",
+ 0x0DB4: "ER_INVALID_DD_OBJECT_ID",
+ 0x0DB5: "ER_INVALID_DD_OBJECT_NAME",
+ 0x0DB6: "ER_TABLESPACE_MISSING_WITH_NAME",
+ 0x0DB7: "ER_TOO_LONG_ROUTINE_COMMENT",
+ 0x0DB8: "ER_SP_LOAD_FAILED",
+ 0x0DB9: "ER_INVALID_BITWISE_OPERANDS_SIZE",
+ 0x0DBA: "ER_INVALID_BITWISE_AGGREGATE_OPERANDS_SIZE",
+ 0x0DBB: "ER_WARN_UNSUPPORTED_HINT",
+ 0x0DBC: "ER_UNEXPECTED_GEOMETRY_TYPE",
+ 0x0DBD: "ER_SRS_PARSE_ERROR",
+ 0x0DBE: "ER_SRS_PROJ_PARAMETER_MISSING",
+ 0x0DBF: "ER_WARN_SRS_NOT_FOUND",
+ 0x0DC0: "ER_SRS_NOT_CARTESIAN",
+ 0x0DC1: "ER_SRS_NOT_CARTESIAN_UNDEFINED",
+ 0x0DC2: "ER_PK_INDEX_CANT_BE_INVISIBLE",
+ 0x0DC3: "ER_UNKNOWN_AUTHID",
+ 0x0DC4: "ER_FAILED_ROLE_GRANT",
+ 0x0DC5: "ER_OPEN_ROLE_TABLES",
+ 0x0DC6: "ER_FAILED_DEFAULT_ROLES",
+ 0x0DC7: "ER_COMPONENTS_NO_SCHEME",
+ 0x0DC8: "ER_COMPONENTS_NO_SCHEME_SERVICE",
+ 0x0DC9: "ER_COMPONENTS_CANT_LOAD",
+ 0x0DCA: "ER_ROLE_NOT_GRANTED",
+ 0x0DCB: "ER_FAILED_REVOKE_ROLE",
+ 0x0DCC: "ER_RENAME_ROLE",
+ 0x0DCD: "ER_COMPONENTS_CANT_ACQUIRE_SERVICE_IMPLEMENTATION",
+ 0x0DCE: "ER_COMPONENTS_CANT_SATISFY_DEPENDENCY",
+ 0x0DCF: "ER_COMPONENTS_LOAD_CANT_REGISTER_SERVICE_IMPLEMENTATION",
+ 0x0DD0: "ER_COMPONENTS_LOAD_CANT_INITIALIZE",
+ 0x0DD1: "ER_COMPONENTS_UNLOAD_NOT_LOADED",
+ 0x0DD2: "ER_COMPONENTS_UNLOAD_CANT_DEINITIALIZE",
+ 0x0DD3: "ER_COMPONENTS_CANT_RELEASE_SERVICE",
+ 0x0DD4: "ER_COMPONENTS_UNLOAD_CANT_UNREGISTER_SERVICE",
+ 0x0DD5: "ER_COMPONENTS_CANT_UNLOAD",
+ 0x0DD6: "ER_WARN_UNLOAD_THE_NOT_PERSISTED",
+ 0x0DD7: "ER_COMPONENT_TABLE_INCORRECT",
+ 0x0DD8: "ER_COMPONENT_MANIPULATE_ROW_FAILED",
+ 0x0DD9: "ER_COMPONENTS_UNLOAD_DUPLICATE_IN_GROUP",
+ 0x0DDA: "ER_CANT_SET_GTID_PURGED_DUE_SETS_CONSTRAINTS",
+ 0x0DDB: "ER_CANNOT_LOCK_USER_MANAGEMENT_CACHES",
+ 0x0DDC: "ER_SRS_NOT_FOUND",
+ 0x0DDD: "ER_VARIABLE_NOT_PERSISTED",
+ 0x0DDE: "ER_IS_QUERY_INVALID_CLAUSE",
+ 0x0DDF: "ER_UNABLE_TO_STORE_STATISTICS",
+ 0x0DE0: "ER_NO_SYSTEM_SCHEMA_ACCESS",
+ 0x0DE1: "ER_NO_SYSTEM_TABLESPACE_ACCESS",
+ 0x0DE2: "ER_NO_SYSTEM_TABLE_ACCESS",
+ 0x0DE3: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_DICTIONARY_TABLE",
+ 0x0DE4: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_SYSTEM_TABLE",
+ 0x0DE5: "ER_NO_SYSTEM_TABLE_ACCESS_FOR_TABLE",
+ 0x0DE6: "ER_INVALID_OPTION_KEY",
+ 0x0DE7: "ER_INVALID_OPTION_VALUE",
+ 0x0DE8: "ER_INVALID_OPTION_KEY_VALUE_PAIR",
+ 0x0DE9: "ER_INVALID_OPTION_START_CHARACTER",
+ 0x0DEA: "ER_INVALID_OPTION_END_CHARACTER",
+ 0x0DEB: "ER_INVALID_OPTION_CHARACTERS",
+ 0x0DEC: "ER_DUPLICATE_OPTION_KEY",
+ 0x0DED: "ER_WARN_SRS_NOT_FOUND_AXIS_ORDER",
+ 0x0DEE: "ER_NO_ACCESS_TO_NATIVE_FCT",
+ 0x0DEF: "ER_RESET_MASTER_TO_VALUE_OUT_OF_RANGE",
+ 0x0DF0: "ER_UNRESOLVED_TABLE_LOCK",
+ 0x0DF1: "ER_DUPLICATE_TABLE_LOCK",
+ 0x0DF2: "ER_BINLOG_UNSAFE_SKIP_LOCKED",
+ 0x0DF3: "ER_BINLOG_UNSAFE_NOWAIT",
+ 0x0DF4: "ER_LOCK_NOWAIT",
+ 0x0DF5: "ER_CTE_RECURSIVE_REQUIRES_UNION",
+ 0x0DF6: "ER_CTE_RECURSIVE_REQUIRES_NONRECURSIVE_FIRST",
+ 0x0DF7: "ER_CTE_RECURSIVE_FORBIDS_AGGREGATION",
+ 0x0DF8: "ER_CTE_RECURSIVE_FORBIDDEN_JOIN_ORDER",
+ 0x0DF9: "ER_CTE_RECURSIVE_REQUIRES_SINGLE_REFERENCE",
+ 0x0DFA: "ER_SWITCH_TMP_ENGINE",
+ 0x0DFB: "ER_WINDOW_NO_SUCH_WINDOW",
+ 0x0DFC: "ER_WINDOW_CIRCULARITY_IN_WINDOW_GRAPH",
+ 0x0DFD: "ER_WINDOW_NO_CHILD_PARTITIONING",
+ 0x0DFE: "ER_WINDOW_NO_INHERIT_FRAME",
+ 0x0DFF: "ER_WINDOW_NO_REDEFINE_ORDER_BY",
+ 0x0E00: "ER_WINDOW_FRAME_START_ILLEGAL",
+ 0x0E01: "ER_WINDOW_FRAME_END_ILLEGAL",
+ 0x0E02: "ER_WINDOW_FRAME_ILLEGAL",
+ 0x0E03: "ER_WINDOW_RANGE_FRAME_ORDER_TYPE",
+ 0x0E04: "ER_WINDOW_RANGE_FRAME_TEMPORAL_TYPE",
+ 0x0E05: "ER_WINDOW_RANGE_FRAME_NUMERIC_TYPE",
+ 0x0E06: "ER_WINDOW_RANGE_BOUND_NOT_CONSTANT",
+ 0x0E07: "ER_WINDOW_DUPLICATE_NAME",
+ 0x0E08: "ER_WINDOW_ILLEGAL_ORDER_BY",
+ 0x0E09: "ER_WINDOW_INVALID_WINDOW_FUNC_USE",
+ 0x0E0A: "ER_WINDOW_INVALID_WINDOW_FUNC_ALIAS_USE",
+ 0x0E0B: "ER_WINDOW_NESTED_WINDOW_FUNC_USE_IN_WINDOW_SPEC",
+ 0x0E0C: "ER_WINDOW_ROWS_INTERVAL_USE",
+ 0x0E0D: "ER_WINDOW_NO_GROUP_ORDER",
+ 0x0E0E: "ER_WINDOW_EXPLAIN_JSON",
+ 0x0E0F: "ER_WINDOW_FUNCTION_IGNORES_FRAME",
+ 0x0E10: "ER_WL9236_NOW_UNUSED",
+ 0x0E11: "ER_INVALID_NO_OF_ARGS",
+ 0x0E12: "ER_FIELD_IN_GROUPING_NOT_GROUP_BY",
+ 0x0E13: "ER_TOO_LONG_TABLESPACE_COMMENT",
+ 0x0E14: "ER_ENGINE_CANT_DROP_TABLE",
+ 0x0E15: "ER_ENGINE_CANT_DROP_MISSING_TABLE",
+ 0x0E16: "ER_TABLESPACE_DUP_FILENAME",
+ 0x0E17: "ER_DB_DROP_RMDIR2",
+ 0x0E18: "ER_IMP_NO_FILES_MATCHED",
+ 0x0E19: "ER_IMP_SCHEMA_DOES_NOT_EXIST",
+ 0x0E1A: "ER_IMP_TABLE_ALREADY_EXISTS",
+ 0x0E1B: "ER_IMP_INCOMPATIBLE_MYSQLD_VERSION",
+ 0x0E1C: "ER_IMP_INCOMPATIBLE_DD_VERSION",
+ 0x0E1D: "ER_IMP_INCOMPATIBLE_SDI_VERSION",
+ 0x0E1E: "ER_WARN_INVALID_HINT",
+ 0x0E1F: "ER_VAR_DOES_NOT_EXIST",
+ 0x0E20: "ER_LONGITUDE_OUT_OF_RANGE",
+ 0x0E21: "ER_LATITUDE_OUT_OF_RANGE",
+ 0x0E22: "ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS",
+ 0x0E23: "ER_ILLEGAL_PRIVILEGE_LEVEL",
+ 0x0E24: "ER_NO_SYSTEM_VIEW_ACCESS",
+ 0x0E25: "ER_COMPONENT_FILTER_FLABBERGASTED",
+ 0x0E26: "ER_PART_EXPR_TOO_LONG",
+ 0x0E27: "ER_UDF_DROP_DYNAMICALLY_REGISTERED",
+ 0x0E28: "ER_UNABLE_TO_STORE_COLUMN_STATISTICS",
+ 0x0E29: "ER_UNABLE_TO_UPDATE_COLUMN_STATISTICS",
+ 0x0E2A: "ER_UNABLE_TO_DROP_COLUMN_STATISTICS",
+ 0x0E2B: "ER_UNABLE_TO_BUILD_HISTOGRAM",
+ 0x0E2C: "ER_MANDATORY_ROLE",
+ 0x0E2D: "ER_MISSING_TABLESPACE_FILE",
+ 0x0E2E: "ER_PERSIST_ONLY_ACCESS_DENIED_ERROR",
+ 0x0E2F: "ER_CMD_NEED_SUPER",
+ 0x0E30: "ER_PATH_IN_DATADIR",
+ 0x0E31: "ER_DDL_IN_PROGRESS",
+ 0x0E32: "ER_TOO_MANY_CONCURRENT_CLONES",
+ 0x0E33: "ER_APPLIER_LOG_EVENT_VALIDATION_ERROR",
+ 0x0E34: "ER_CTE_MAX_RECURSION_DEPTH",
+ 0x0E35: "ER_NOT_HINT_UPDATABLE_VARIABLE",
+ 0x0E36: "ER_CREDENTIALS_CONTRADICT_TO_HISTORY",
+ 0x0E37: "ER_WARNING_PASSWORD_HISTORY_CLAUSES_VOID",
+ 0x0E38: "ER_CLIENT_DOES_NOT_SUPPORT",
+ 0x0E39: "ER_I_S_SKIPPED_TABLESPACE",
+ 0x0E3A: "ER_TABLESPACE_ENGINE_MISMATCH",
+ 0x0E3B: "ER_WRONG_SRID_FOR_COLUMN",
+ 0x0E3C: "ER_CANNOT_ALTER_SRID_DUE_TO_INDEX",
+ 0x0E3D: "ER_WARN_BINLOG_PARTIAL_UPDATES_DISABLED",
+ 0x0E3E: "ER_WARN_BINLOG_V1_ROW_EVENTS_DISABLED",
+ 0x0E3F: "ER_WARN_BINLOG_PARTIAL_UPDATES_SUGGESTS_PARTIAL_IMAGES",
+ 0x0E40: "ER_COULD_NOT_APPLY_JSON_DIFF",
+ 0x0E41: "ER_CORRUPTED_JSON_DIFF",
+ 0x0E42: "ER_RESOURCE_GROUP_EXISTS",
+ 0x0E43: "ER_RESOURCE_GROUP_NOT_EXISTS",
+ 0x0E44: "ER_INVALID_VCPU_ID",
+ 0x0E45: "ER_INVALID_VCPU_RANGE",
+ 0x0E46: "ER_INVALID_THREAD_PRIORITY",
+ 0x0E47: "ER_DISALLOWED_OPERATION",
+ 0x0E48: "ER_RESOURCE_GROUP_BUSY",
+ 0x0E49: "ER_RESOURCE_GROUP_DISABLED",
+ 0x0E4A: "ER_FEATURE_UNSUPPORTED",
+ 0x0E4B: "ER_ATTRIBUTE_IGNORED",
+ 0x0E4C: "ER_INVALID_THREAD_ID",
+ 0x0E4D: "ER_RESOURCE_GROUP_BIND_FAILED",
+ 0x0E4E: "ER_INVALID_USE_OF_FORCE_OPTION",
+ 0x0E4F: "ER_GROUP_REPLICATION_COMMAND_FAILURE",
+ 0x0E50: "ER_SDI_OPERATION_FAILED",
+ 0x0E51: "ER_MISSING_JSON_TABLE_VALUE",
+ 0x0E52: "ER_WRONG_JSON_TABLE_VALUE",
+ 0x0E53: "ER_TF_MUST_HAVE_ALIAS",
+ 0x0E54: "ER_TF_FORBIDDEN_JOIN_TYPE",
+ 0x0E55: "ER_JT_VALUE_OUT_OF_RANGE",
+ 0x0E56: "ER_JT_MAX_NESTED_PATH",
+ 0x0E57: "ER_PASSWORD_EXPIRATION_NOT_SUPPORTED_BY_AUTH_METHOD",
+ 0x0E58: "ER_INVALID_GEOJSON_CRS_NOT_TOP_LEVEL",
+ 0x0E59: "ER_BAD_NULL_ERROR_NOT_IGNORED",
+ 0x0E5A: "WARN_USELESS_SPATIAL_INDEX",
+ 0x0E5B: "ER_DISK_FULL_NOWAIT",
+ 0x0E5C: "ER_PARSE_ERROR_IN_DIGEST_FN",
+ 0x0E5D: "ER_UNDISCLOSED_PARSE_ERROR_IN_DIGEST_FN",
+ 0x0E5E: "ER_SCHEMA_DIR_EXISTS",
+ 0x0E5F: "ER_SCHEMA_DIR_MISSING",
+ 0x0E60: "ER_SCHEMA_DIR_CREATE_FAILED",
+ 0x0E61: "ER_SCHEMA_DIR_UNKNOWN",
+ 0x0E62: "ER_ONLY_IMPLEMENTED_FOR_SRID_0_AND_4326",
+ 0x0E63: "ER_BINLOG_EXPIRE_LOG_DAYS_AND_SECS_USED_TOGETHER",
+ 0x0E64: "ER_REGEXP_BUFFER_OVERFLOW",
+ 0x0E65: "ER_REGEXP_ILLEGAL_ARGUMENT",
+ 0x0E66: "ER_REGEXP_INDEX_OUTOFBOUNDS_ERROR",
+ 0x0E67: "ER_REGEXP_INTERNAL_ERROR",
+ 0x0E68: "ER_REGEXP_RULE_SYNTAX",
+ 0x0E69: "ER_REGEXP_BAD_ESCAPE_SEQUENCE",
+ 0x0E6A: "ER_REGEXP_UNIMPLEMENTED",
+ 0x0E6B: "ER_REGEXP_MISMATCHED_PAREN",
+ 0x0E6C: "ER_REGEXP_BAD_INTERVAL",
+ 0x0E6D: "ER_REGEXP_MAX_LT_MIN",
+ 0x0E6E: "ER_REGEXP_INVALID_BACK_REF",
+ 0x0E6F: "ER_REGEXP_LOOK_BEHIND_LIMIT",
+ 0x0E70: "ER_REGEXP_MISSING_CLOSE_BRACKET",
+ 0x0E71: "ER_REGEXP_INVALID_RANGE",
+ 0x0E72: "ER_REGEXP_STACK_OVERFLOW",
+ 0x0E73: "ER_REGEXP_TIME_OUT",
+ 0x0E74: "ER_REGEXP_PATTERN_TOO_BIG",
+ 0x0E75: "ER_CANT_SET_ERROR_LOG_SERVICE",
+ 0x0E76: "ER_EMPTY_PIPELINE_FOR_ERROR_LOG_SERVICE",
+ 0x0E77: "ER_COMPONENT_FILTER_DIAGNOSTICS",
+ 0x0E78: "ER_NOT_IMPLEMENTED_FOR_CARTESIAN_SRS",
+ 0x0E79: "ER_NOT_IMPLEMENTED_FOR_PROJECTED_SRS",
+ 0x0E7A: "ER_NONPOSITIVE_RADIUS",
+ 0x0E7B: "ER_RESTART_SERVER_FAILED",
+ 0x0E7C: "ER_SRS_MISSING_MANDATORY_ATTRIBUTE",
+ 0x0E7D: "ER_SRS_MULTIPLE_ATTRIBUTE_DEFINITIONS",
+ 0x0E7E: "ER_SRS_NAME_CANT_BE_EMPTY_OR_WHITESPACE",
+ 0x0E7F: "ER_SRS_ORGANIZATION_CANT_BE_EMPTY_OR_WHITESPACE",
+ 0x0E80: "ER_SRS_ID_ALREADY_EXISTS",
+ 0x0E81: "ER_WARN_SRS_ID_ALREADY_EXISTS",
+ 0x0E82: "ER_CANT_MODIFY_SRID_0",
+ 0x0E83: "ER_WARN_RESERVED_SRID_RANGE",
+ 0x0E84: "ER_CANT_MODIFY_SRS_USED_BY_COLUMN",
+ 0x0E85: "ER_SRS_INVALID_CHARACTER_IN_ATTRIBUTE",
+ 0x0E86: "ER_SRS_ATTRIBUTE_STRING_TOO_LONG",
+ 0x0E87: "ER_DEPRECATED_UTF8_ALIAS",
+ 0x0E88: "ER_DEPRECATED_NATIONAL",
+ 0x0E89: "ER_INVALID_DEFAULT_UTF8MB4_COLLATION",
+ 0x0E8A: "ER_UNABLE_TO_COLLECT_LOG_STATUS",
+ 0x0E8B: "ER_RESERVED_TABLESPACE_NAME",
+ 0x0E8C: "ER_UNABLE_TO_SET_OPTION",
+ 0x0E8D: "ER_SLAVE_POSSIBLY_DIVERGED_AFTER_DDL",
+ 0x0E8E: "ER_SRS_NOT_GEOGRAPHIC",
+ 0x0E8F: "ER_POLYGON_TOO_LARGE",
+ 0x0E90: "ER_SPATIAL_UNIQUE_INDEX",
+ 0x0E91: "ER_INDEX_TYPE_NOT_SUPPORTED_FOR_SPATIAL_INDEX",
+ 0x0E92: "ER_FK_CANNOT_DROP_PARENT",
+ 0x0E93: "ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE",
+ 0x0E94: "ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE",
+ 0x0E95: "ER_FK_CANNOT_USE_VIRTUAL_COLUMN",
+ 0x0E96: "ER_FK_NO_COLUMN_PARENT",
+ 0x0F61: "ER_AUTHCACHE_ROLE_TABLES_DODGY",
+ 0x11E0: "ER_DISK_FULL",
0x2710: "ER_PARSER_TRACE",
0x2711: "ER_BOOTSTRAP_CANT_THREAD",
0x2712: "ER_TRIGGER_INVALID_VALUE",
@@ -1367,12 +1367,12 @@
0x2717: "ER_DD_VERSION_INSTALLED",
0x2718: "ER_DD_VERSION_UNSUPPORTED",
0x2719: "ER_LOG_SYSLOG_FACILITY_FAIL",
- 0x271a: "ER_LOG_SYSLOG_CANNOT_OPEN",
- 0x271b: "ER_LOG_SLOW_CANNOT_OPEN",
- 0x271c: "ER_LOG_GENERAL_CANNOT_OPEN",
- 0x271d: "ER_LOG_CANNOT_WRITE",
- 0x271e: "ER_RPL_ZOMBIE_ENCOUNTERED",
- 0x271f: "ER_RPL_GTID_TABLE_CANNOT_OPEN",
+ 0x271A: "ER_LOG_SYSLOG_CANNOT_OPEN",
+ 0x271B: "ER_LOG_SLOW_CANNOT_OPEN",
+ 0x271C: "ER_LOG_GENERAL_CANNOT_OPEN",
+ 0x271D: "ER_LOG_CANNOT_WRITE",
+ 0x271E: "ER_RPL_ZOMBIE_ENCOUNTERED",
+ 0x271F: "ER_RPL_GTID_TABLE_CANNOT_OPEN",
0x2720: "ER_SYSTEM_SCHEMA_NOT_FOUND",
0x2721: "ER_DD_INIT_UPGRADE_FAILED",
0x2722: "ER_VIEW_UNKNOWN_CHARSET_OR_COLLATION",
@@ -1383,12 +1383,12 @@
0x2727: "ER_DD_VIEW_CANT_CREATE",
0x2728: "ER_DD_METADATA_NOT_FOUND",
0x2729: "ER_DD_CACHE_NOT_EMPTY_AT_SHUTDOWN",
- 0x272a: "ER_DD_OBJECT_REMAINS",
- 0x272b: "ER_DD_OBJECT_REMAINS_IN_RELEASER",
- 0x272c: "ER_DD_OBJECT_RELEASER_REMAINS",
- 0x272d: "ER_DD_CANT_GET_OBJECT_KEY",
- 0x272e: "ER_DD_CANT_CREATE_OBJECT_KEY",
- 0x272f: "ER_CANT_CREATE_HANDLE_MGR_THREAD",
+ 0x272A: "ER_DD_OBJECT_REMAINS",
+ 0x272B: "ER_DD_OBJECT_REMAINS_IN_RELEASER",
+ 0x272C: "ER_DD_OBJECT_RELEASER_REMAINS",
+ 0x272D: "ER_DD_CANT_GET_OBJECT_KEY",
+ 0x272E: "ER_DD_CANT_CREATE_OBJECT_KEY",
+ 0x272F: "ER_CANT_CREATE_HANDLE_MGR_THREAD",
0x2730: "ER_RPL_REPO_HAS_GAPS",
0x2731: "ER_INVALID_VALUE_FOR_ENFORCE_GTID_CONSISTENCY",
0x2732: "ER_CHANGED_ENFORCE_GTID_CONSISTENCY",
@@ -1399,12 +1399,12 @@
0x2737: "ER_DEBUG_SYNC_THREAD_MAX",
0x2738: "ER_DEBUG_SYNC_OOM",
0x2739: "ER_CANT_INIT_TC_LOG",
- 0x273a: "ER_EVENT_CANT_INIT_QUEUE",
- 0x273b: "ER_EVENT_PURGING_QUEUE",
- 0x273c: "ER_EVENT_LAST_EXECUTION",
- 0x273d: "ER_EVENT_MESSAGE_STACK",
- 0x273e: "ER_EVENT_EXECUTION_FAILED",
- 0x273f: "ER_CANT_INIT_SCHEDULER_THREAD",
+ 0x273A: "ER_EVENT_CANT_INIT_QUEUE",
+ 0x273B: "ER_EVENT_PURGING_QUEUE",
+ 0x273C: "ER_EVENT_LAST_EXECUTION",
+ 0x273D: "ER_EVENT_MESSAGE_STACK",
+ 0x273E: "ER_EVENT_EXECUTION_FAILED",
+ 0x273F: "ER_CANT_INIT_SCHEDULER_THREAD",
0x2740: "ER_SCHEDULER_STOPPED",
0x2741: "ER_CANT_CREATE_SCHEDULER_THREAD",
0x2742: "ER_SCHEDULER_WAITING",
@@ -1415,12 +1415,12 @@
0x2747: "ER_UNABLE_TO_RESOLVE_IP",
0x2748: "ER_UNABLE_TO_RESOLVE_HOSTNAME",
0x2749: "ER_HOSTNAME_RESEMBLES_IPV4",
- 0x274a: "ER_HOSTNAME_DOESNT_RESOLVE_TO",
- 0x274b: "ER_ADDRESSES_FOR_HOSTNAME_HEADER",
- 0x274c: "ER_ADDRESSES_FOR_HOSTNAME_LIST_ITEM",
- 0x274d: "ER_TRG_WITHOUT_DEFINER",
- 0x274e: "ER_TRG_NO_CLIENT_CHARSET",
- 0x274f: "ER_PARSING_VIEW",
+ 0x274A: "ER_HOSTNAME_DOESNT_RESOLVE_TO",
+ 0x274B: "ER_ADDRESSES_FOR_HOSTNAME_HEADER",
+ 0x274C: "ER_ADDRESSES_FOR_HOSTNAME_LIST_ITEM",
+ 0x274D: "ER_TRG_WITHOUT_DEFINER",
+ 0x274E: "ER_TRG_NO_CLIENT_CHARSET",
+ 0x274F: "ER_PARSING_VIEW",
0x2750: "ER_COMPONENTS_INFRASTRUCTURE_BOOTSTRAP",
0x2751: "ER_COMPONENTS_INFRASTRUCTURE_SHUTDOWN",
0x2752: "ER_COMPONENTS_PERSIST_LOADER_BOOTSTRAP",
@@ -1431,12 +1431,12 @@
0x2757: "ER_UUID_SALT",
0x2758: "ER_UUID_IS",
0x2759: "ER_UUID_INVALID",
- 0x275a: "ER_UUID_SCRUB",
- 0x275b: "ER_CREATING_NEW_UUID",
- 0x275c: "ER_CANT_CREATE_UUID",
- 0x275d: "ER_UNKNOWN_UNSUPPORTED_STORAGE_ENGINE",
- 0x275e: "ER_SECURE_AUTH_VALUE_UNSUPPORTED",
- 0x275f: "ER_INVALID_INSTRUMENT",
+ 0x275A: "ER_UUID_SCRUB",
+ 0x275B: "ER_CREATING_NEW_UUID",
+ 0x275C: "ER_CANT_CREATE_UUID",
+ 0x275D: "ER_UNKNOWN_UNSUPPORTED_STORAGE_ENGINE",
+ 0x275E: "ER_SECURE_AUTH_VALUE_UNSUPPORTED",
+ 0x275F: "ER_INVALID_INSTRUMENT",
0x2760: "ER_INNODB_MANDATORY",
0x2762: "ER_OLD_PASSWORDS_NO_MIDDLE_GROUND",
0x2763: "ER_VERBOSE_REQUIRES_HELP",
@@ -1446,12 +1446,12 @@
0x2767: "ER_FT_BOOL_SYNTAX_INVALID",
0x2768: "ER_CREDENTIALLESS_AUTO_USER_BAD",
0x2769: "ER_CONNECTION_HANDLING_OOM",
- 0x276a: "ER_THREAD_HANDLING_OOM",
- 0x276b: "ER_CANT_CREATE_TEST_FILE",
- 0x276c: "ER_CANT_CREATE_PID_FILE",
- 0x276d: "ER_CANT_REMOVE_PID_FILE",
- 0x276e: "ER_CANT_CREATE_SHUTDOWN_THREAD",
- 0x276f: "ER_SEC_FILE_PRIV_CANT_ACCESS_DIR",
+ 0x276A: "ER_THREAD_HANDLING_OOM",
+ 0x276B: "ER_CANT_CREATE_TEST_FILE",
+ 0x276C: "ER_CANT_CREATE_PID_FILE",
+ 0x276D: "ER_CANT_REMOVE_PID_FILE",
+ 0x276E: "ER_CANT_CREATE_SHUTDOWN_THREAD",
+ 0x276F: "ER_SEC_FILE_PRIV_CANT_ACCESS_DIR",
0x2770: "ER_SEC_FILE_PRIV_IGNORED",
0x2771: "ER_SEC_FILE_PRIV_EMPTY",
0x2772: "ER_SEC_FILE_PRIV_NULL",
@@ -1462,12 +1462,12 @@
0x2777: "ER_CANT_CREATE_NAMED_PIPES_THREAD",
0x2778: "ER_CANT_CREATE_TCPIP_THREAD",
0x2779: "ER_CANT_CREATE_SHM_THREAD",
- 0x277a: "ER_CANT_CREATE_INTERRUPT_THREAD",
- 0x277b: "ER_WRITABLE_CONFIG_REMOVED",
- 0x277c: "ER_CORE_VALUES",
- 0x277d: "ER_WRONG_DATETIME_SPEC",
- 0x277e: "ER_RPL_BINLOG_FILTERS_OOM",
- 0x277f: "ER_KEYCACHE_OOM",
+ 0x277A: "ER_CANT_CREATE_INTERRUPT_THREAD",
+ 0x277B: "ER_WRITABLE_CONFIG_REMOVED",
+ 0x277C: "ER_CORE_VALUES",
+ 0x277D: "ER_WRONG_DATETIME_SPEC",
+ 0x277E: "ER_RPL_BINLOG_FILTERS_OOM",
+ 0x277F: "ER_KEYCACHE_OOM",
0x2780: "ER_CONFIRMING_THE_FUTURE",
0x2781: "ER_BACK_IN_TIME",
0x2782: "ER_FUTURE_DATE",
@@ -1478,12 +1478,12 @@
0x2787: "ER_ABORTING",
0x2788: "ER_BINLOG_END",
0x2789: "ER_CALL_ME_LOCALHOST",
- 0x278a: "ER_USER_REQUIRES_ROOT",
- 0x278b: "ER_REALLY_RUN_AS_ROOT",
- 0x278c: "ER_USER_WHAT_USER",
- 0x278d: "ER_TRANSPORTS_WHAT_TRANSPORTS",
- 0x278e: "ER_FAIL_SETGID",
- 0x278f: "ER_FAIL_SETUID",
+ 0x278A: "ER_USER_REQUIRES_ROOT",
+ 0x278B: "ER_REALLY_RUN_AS_ROOT",
+ 0x278C: "ER_USER_WHAT_USER",
+ 0x278D: "ER_TRANSPORTS_WHAT_TRANSPORTS",
+ 0x278E: "ER_FAIL_SETGID",
+ 0x278F: "ER_FAIL_SETUID",
0x2790: "ER_FAIL_SETREGID",
0x2791: "ER_FAIL_SETREUID",
0x2792: "ER_FAIL_CHROOT",
@@ -1494,108 +1494,108 @@
0x2797: "ER_FAILED_TO_LOCK_MEM",
0x2798: "ER_MYINIT_FAILED",
0x2799: "ER_BEG_INITFILE",
- 0x279a: "ER_END_INITFILE",
- 0x279b: "ER_CHANGED_MAX_OPEN_FILES",
- 0x279c: "ER_CANT_INCREASE_MAX_OPEN_FILES",
- 0x279d: "ER_CHANGED_MAX_CONNECTIONS",
- 0x279e: "ER_CHANGED_TABLE_OPEN_CACHE",
- 0x279f: "ER_THE_USER_ABIDES",
- 0x27a0: "ER_RPL_CANT_ADD_DO_TABLE",
- 0x27a1: "ER_RPL_CANT_ADD_IGNORE_TABLE",
- 0x27a2: "ER_TRACK_VARIABLES_BOGUS",
- 0x27a3: "ER_EXCESS_ARGUMENTS",
- 0x27a4: "ER_VERBOSE_HINT",
- 0x27a5: "ER_CANT_READ_ERRMSGS",
- 0x27a6: "ER_CANT_INIT_DBS",
- 0x27a7: "ER_LOG_OUTPUT_CONTRADICTORY",
- 0x27a8: "ER_NO_CSV_NO_LOG_TABLES",
- 0x27a9: "ER_RPL_REWRITEDB_MISSING_ARROW",
- 0x27aa: "ER_RPL_REWRITEDB_EMPTY_FROM",
- 0x27ab: "ER_RPL_REWRITEDB_EMPTY_TO",
- 0x27ac: "ER_LOG_FILES_GIVEN_LOG_OUTPUT_IS_TABLE",
- 0x27ad: "ER_LOG_FILE_INVALID",
- 0x27ae: "ER_LOWER_CASE_TABLE_NAMES_CS_DD_ON_CI_FS_UNSUPPORTED",
- 0x27af: "ER_LOWER_CASE_TABLE_NAMES_USING_2",
- 0x27b0: "ER_LOWER_CASE_TABLE_NAMES_USING_0",
- 0x27b1: "ER_NEED_LOG_BIN",
- 0x27b2: "ER_NEED_FILE_INSTEAD_OF_DIR",
- 0x27b3: "ER_LOG_BIN_BETTER_WITH_NAME",
- 0x27b4: "ER_BINLOG_NEEDS_SERVERID",
- 0x27b5: "ER_RPL_CANT_MAKE_PATHS",
- 0x27b6: "ER_CANT_INITIALIZE_GTID",
- 0x27b7: "ER_CANT_INITIALIZE_EARLY_PLUGINS",
- 0x27b8: "ER_CANT_INITIALIZE_BUILTIN_PLUGINS",
- 0x27b9: "ER_CANT_INITIALIZE_DYNAMIC_PLUGINS",
- 0x27ba: "ER_PERFSCHEMA_INIT_FAILED",
- 0x27bb: "ER_STACKSIZE_UNEXPECTED",
- 0x27bc: "ER_CANT_SET_DATADIR",
- 0x27bd: "ER_CANT_STAT_DATADIR",
- 0x27be: "ER_CANT_CHOWN_DATADIR",
- 0x27bf: "ER_CANT_SET_UP_PERSISTED_VALUES",
- 0x27c0: "ER_CANT_SAVE_GTIDS",
- 0x27c1: "ER_AUTH_CANT_SET_DEFAULT_PLUGIN",
- 0x27c2: "ER_CANT_JOIN_SHUTDOWN_THREAD",
- 0x27c3: "ER_CANT_HASH_DO_AND_IGNORE_RULES",
- 0x27c4: "ER_CANT_OPEN_CA",
- 0x27c5: "ER_CANT_ACCESS_CAPATH",
- 0x27c6: "ER_SSL_TRYING_DATADIR_DEFAULTS",
- 0x27c7: "ER_AUTO_OPTIONS_FAILED",
- 0x27c8: "ER_CANT_INIT_TIMER",
- 0x27c9: "ER_SERVERID_TOO_LARGE",
- 0x27ca: "ER_DEFAULT_SE_UNAVAILABLE",
- 0x27cb: "ER_CANT_OPEN_ERROR_LOG",
- 0x27cc: "ER_INVALID_ERROR_LOG_NAME",
- 0x27cd: "ER_RPL_INFINITY_DENIED",
- 0x27ce: "ER_RPL_INFINITY_IGNORED",
- 0x27cf: "ER_NDB_TABLES_NOT_READY",
- 0x27d0: "ER_TABLE_CHECK_INTACT",
- 0x27d1: "ER_DD_TABLESPACE_NOT_FOUND",
- 0x27d2: "ER_DD_TRG_CONNECTION_COLLATION_MISSING",
- 0x27d3: "ER_DD_TRG_DB_COLLATION_MISSING",
- 0x27d4: "ER_DD_TRG_DEFINER_OOM",
- 0x27d5: "ER_DD_TRG_FILE_UNREADABLE",
- 0x27d6: "ER_TRG_CANT_PARSE",
- 0x27d7: "ER_DD_TRG_CANT_ADD",
- 0x27d8: "ER_DD_CANT_RESOLVE_VIEW",
- 0x27d9: "ER_DD_VIEW_WITHOUT_DEFINER",
- 0x27da: "ER_PLUGIN_INIT_FAILED",
- 0x27db: "ER_RPL_TRX_DELEGATES_INIT_FAILED",
- 0x27dc: "ER_RPL_BINLOG_STORAGE_DELEGATES_INIT_FAILED",
- 0x27dd: "ER_RPL_BINLOG_TRANSMIT_DELEGATES_INIT_FAILED",
- 0x27de: "ER_RPL_BINLOG_RELAY_DELEGATES_INIT_FAILED",
- 0x27df: "ER_RPL_PLUGIN_FUNCTION_FAILED",
- 0x27e0: "ER_SQL_HA_READ_FAILED",
- 0x27e1: "ER_SR_BOGUS_VALUE",
- 0x27e2: "ER_SR_INVALID_CONTEXT",
- 0x27e3: "ER_READING_TABLE_FAILED",
- 0x27e4: "ER_DES_FILE_WRONG_KEY",
- 0x27e5: "ER_CANT_SET_PERSISTED",
- 0x27e6: "ER_JSON_PARSE_ERROR",
- 0x27e7: "ER_CONFIG_OPTION_WITHOUT_GROUP",
- 0x27e8: "ER_VALGRIND_DO_QUICK_LEAK_CHECK",
- 0x27e9: "ER_VALGRIND_COUNT_LEAKS",
- 0x27ea: "ER_LOAD_DATA_INFILE_FAILED_IN_UNEXPECTED_WAY",
- 0x27eb: "ER_UNKNOWN_ERROR_NUMBER",
- 0x27ec: "ER_UDF_CANT_ALLOC_FOR_STRUCTURES",
- 0x27ed: "ER_UDF_CANT_ALLOC_FOR_FUNCTION",
- 0x27ee: "ER_UDF_INVALID_ROW_IN_FUNCTION_TABLE",
- 0x27ef: "ER_UDF_CANT_OPEN_FUNCTION_TABLE",
- 0x27f0: "ER_XA_RECOVER_FOUND_TRX_IN_SE",
- 0x27f1: "ER_XA_RECOVER_FOUND_XA_TRX",
- 0x27f2: "ER_XA_IGNORING_XID",
- 0x27f3: "ER_XA_COMMITTING_XID",
- 0x27f4: "ER_XA_ROLLING_BACK_XID",
- 0x27f5: "ER_XA_STARTING_RECOVERY",
- 0x27f6: "ER_XA_NO_MULTI_2PC_HEURISTIC_RECOVER",
- 0x27f7: "ER_XA_RECOVER_EXPLANATION",
- 0x27f8: "ER_XA_RECOVERY_DONE",
- 0x27f9: "ER_TRX_GTID_COLLECT_REJECT",
- 0x27fa: "ER_SQL_AUTHOR_DEFAULT_ROLES_FAIL",
- 0x27fb: "ER_SQL_USER_TABLE_CREATE_WARNING",
- 0x27fc: "ER_SQL_USER_TABLE_ALTER_WARNING",
- 0x27fd: "ER_ROW_IN_WRONG_PARTITION_PLEASE_REPAIR",
- 0x27fe: "ER_MYISAM_CRASHED_ERROR_IN_THREAD",
- 0x27ff: "ER_MYISAM_CRASHED_ERROR_IN",
+ 0x279A: "ER_END_INITFILE",
+ 0x279B: "ER_CHANGED_MAX_OPEN_FILES",
+ 0x279C: "ER_CANT_INCREASE_MAX_OPEN_FILES",
+ 0x279D: "ER_CHANGED_MAX_CONNECTIONS",
+ 0x279E: "ER_CHANGED_TABLE_OPEN_CACHE",
+ 0x279F: "ER_THE_USER_ABIDES",
+ 0x27A0: "ER_RPL_CANT_ADD_DO_TABLE",
+ 0x27A1: "ER_RPL_CANT_ADD_IGNORE_TABLE",
+ 0x27A2: "ER_TRACK_VARIABLES_BOGUS",
+ 0x27A3: "ER_EXCESS_ARGUMENTS",
+ 0x27A4: "ER_VERBOSE_HINT",
+ 0x27A5: "ER_CANT_READ_ERRMSGS",
+ 0x27A6: "ER_CANT_INIT_DBS",
+ 0x27A7: "ER_LOG_OUTPUT_CONTRADICTORY",
+ 0x27A8: "ER_NO_CSV_NO_LOG_TABLES",
+ 0x27A9: "ER_RPL_REWRITEDB_MISSING_ARROW",
+ 0x27AA: "ER_RPL_REWRITEDB_EMPTY_FROM",
+ 0x27AB: "ER_RPL_REWRITEDB_EMPTY_TO",
+ 0x27AC: "ER_LOG_FILES_GIVEN_LOG_OUTPUT_IS_TABLE",
+ 0x27AD: "ER_LOG_FILE_INVALID",
+ 0x27AE: "ER_LOWER_CASE_TABLE_NAMES_CS_DD_ON_CI_FS_UNSUPPORTED",
+ 0x27AF: "ER_LOWER_CASE_TABLE_NAMES_USING_2",
+ 0x27B0: "ER_LOWER_CASE_TABLE_NAMES_USING_0",
+ 0x27B1: "ER_NEED_LOG_BIN",
+ 0x27B2: "ER_NEED_FILE_INSTEAD_OF_DIR",
+ 0x27B3: "ER_LOG_BIN_BETTER_WITH_NAME",
+ 0x27B4: "ER_BINLOG_NEEDS_SERVERID",
+ 0x27B5: "ER_RPL_CANT_MAKE_PATHS",
+ 0x27B6: "ER_CANT_INITIALIZE_GTID",
+ 0x27B7: "ER_CANT_INITIALIZE_EARLY_PLUGINS",
+ 0x27B8: "ER_CANT_INITIALIZE_BUILTIN_PLUGINS",
+ 0x27B9: "ER_CANT_INITIALIZE_DYNAMIC_PLUGINS",
+ 0x27BA: "ER_PERFSCHEMA_INIT_FAILED",
+ 0x27BB: "ER_STACKSIZE_UNEXPECTED",
+ 0x27BC: "ER_CANT_SET_DATADIR",
+ 0x27BD: "ER_CANT_STAT_DATADIR",
+ 0x27BE: "ER_CANT_CHOWN_DATADIR",
+ 0x27BF: "ER_CANT_SET_UP_PERSISTED_VALUES",
+ 0x27C0: "ER_CANT_SAVE_GTIDS",
+ 0x27C1: "ER_AUTH_CANT_SET_DEFAULT_PLUGIN",
+ 0x27C2: "ER_CANT_JOIN_SHUTDOWN_THREAD",
+ 0x27C3: "ER_CANT_HASH_DO_AND_IGNORE_RULES",
+ 0x27C4: "ER_CANT_OPEN_CA",
+ 0x27C5: "ER_CANT_ACCESS_CAPATH",
+ 0x27C6: "ER_SSL_TRYING_DATADIR_DEFAULTS",
+ 0x27C7: "ER_AUTO_OPTIONS_FAILED",
+ 0x27C8: "ER_CANT_INIT_TIMER",
+ 0x27C9: "ER_SERVERID_TOO_LARGE",
+ 0x27CA: "ER_DEFAULT_SE_UNAVAILABLE",
+ 0x27CB: "ER_CANT_OPEN_ERROR_LOG",
+ 0x27CC: "ER_INVALID_ERROR_LOG_NAME",
+ 0x27CD: "ER_RPL_INFINITY_DENIED",
+ 0x27CE: "ER_RPL_INFINITY_IGNORED",
+ 0x27CF: "ER_NDB_TABLES_NOT_READY",
+ 0x27D0: "ER_TABLE_CHECK_INTACT",
+ 0x27D1: "ER_DD_TABLESPACE_NOT_FOUND",
+ 0x27D2: "ER_DD_TRG_CONNECTION_COLLATION_MISSING",
+ 0x27D3: "ER_DD_TRG_DB_COLLATION_MISSING",
+ 0x27D4: "ER_DD_TRG_DEFINER_OOM",
+ 0x27D5: "ER_DD_TRG_FILE_UNREADABLE",
+ 0x27D6: "ER_TRG_CANT_PARSE",
+ 0x27D7: "ER_DD_TRG_CANT_ADD",
+ 0x27D8: "ER_DD_CANT_RESOLVE_VIEW",
+ 0x27D9: "ER_DD_VIEW_WITHOUT_DEFINER",
+ 0x27DA: "ER_PLUGIN_INIT_FAILED",
+ 0x27DB: "ER_RPL_TRX_DELEGATES_INIT_FAILED",
+ 0x27DC: "ER_RPL_BINLOG_STORAGE_DELEGATES_INIT_FAILED",
+ 0x27DD: "ER_RPL_BINLOG_TRANSMIT_DELEGATES_INIT_FAILED",
+ 0x27DE: "ER_RPL_BINLOG_RELAY_DELEGATES_INIT_FAILED",
+ 0x27DF: "ER_RPL_PLUGIN_FUNCTION_FAILED",
+ 0x27E0: "ER_SQL_HA_READ_FAILED",
+ 0x27E1: "ER_SR_BOGUS_VALUE",
+ 0x27E2: "ER_SR_INVALID_CONTEXT",
+ 0x27E3: "ER_READING_TABLE_FAILED",
+ 0x27E4: "ER_DES_FILE_WRONG_KEY",
+ 0x27E5: "ER_CANT_SET_PERSISTED",
+ 0x27E6: "ER_JSON_PARSE_ERROR",
+ 0x27E7: "ER_CONFIG_OPTION_WITHOUT_GROUP",
+ 0x27E8: "ER_VALGRIND_DO_QUICK_LEAK_CHECK",
+ 0x27E9: "ER_VALGRIND_COUNT_LEAKS",
+ 0x27EA: "ER_LOAD_DATA_INFILE_FAILED_IN_UNEXPECTED_WAY",
+ 0x27EB: "ER_UNKNOWN_ERROR_NUMBER",
+ 0x27EC: "ER_UDF_CANT_ALLOC_FOR_STRUCTURES",
+ 0x27ED: "ER_UDF_CANT_ALLOC_FOR_FUNCTION",
+ 0x27EE: "ER_UDF_INVALID_ROW_IN_FUNCTION_TABLE",
+ 0x27EF: "ER_UDF_CANT_OPEN_FUNCTION_TABLE",
+ 0x27F0: "ER_XA_RECOVER_FOUND_TRX_IN_SE",
+ 0x27F1: "ER_XA_RECOVER_FOUND_XA_TRX",
+ 0x27F2: "ER_XA_IGNORING_XID",
+ 0x27F3: "ER_XA_COMMITTING_XID",
+ 0x27F4: "ER_XA_ROLLING_BACK_XID",
+ 0x27F5: "ER_XA_STARTING_RECOVERY",
+ 0x27F6: "ER_XA_NO_MULTI_2PC_HEURISTIC_RECOVER",
+ 0x27F7: "ER_XA_RECOVER_EXPLANATION",
+ 0x27F8: "ER_XA_RECOVERY_DONE",
+ 0x27F9: "ER_TRX_GTID_COLLECT_REJECT",
+ 0x27FA: "ER_SQL_AUTHOR_DEFAULT_ROLES_FAIL",
+ 0x27FB: "ER_SQL_USER_TABLE_CREATE_WARNING",
+ 0x27FC: "ER_SQL_USER_TABLE_ALTER_WARNING",
+ 0x27FD: "ER_ROW_IN_WRONG_PARTITION_PLEASE_REPAIR",
+ 0x27FE: "ER_MYISAM_CRASHED_ERROR_IN_THREAD",
+ 0x27FF: "ER_MYISAM_CRASHED_ERROR_IN",
0x2800: "ER_TOO_MANY_STORAGE_ENGINES",
0x2801: "ER_SE_TYPECODE_CONFLICT",
0x2802: "ER_TRX_WRITE_SET_OOM",
@@ -1606,12 +1606,12 @@
0x2807: "ER_CONN_PIP_CANT_CREATE_EVENT",
0x2808: "ER_CONN_PIP_CANT_CREATE_PIPE",
0x2809: "ER_CONN_PER_THREAD_NO_THREAD",
- 0x280a: "ER_CONN_TCP_NO_SOCKET",
- 0x280b: "ER_CONN_TCP_CREATED",
- 0x280c: "ER_CONN_TCP_ADDRESS",
- 0x280d: "ER_CONN_TCP_IPV6_AVAILABLE",
- 0x280e: "ER_CONN_TCP_IPV6_UNAVAILABLE",
- 0x280f: "ER_CONN_TCP_ERROR_WITH_STRERROR",
+ 0x280A: "ER_CONN_TCP_NO_SOCKET",
+ 0x280B: "ER_CONN_TCP_CREATED",
+ 0x280C: "ER_CONN_TCP_ADDRESS",
+ 0x280D: "ER_CONN_TCP_IPV6_AVAILABLE",
+ 0x280E: "ER_CONN_TCP_IPV6_UNAVAILABLE",
+ 0x280F: "ER_CONN_TCP_ERROR_WITH_STRERROR",
0x2810: "ER_CONN_TCP_CANT_RESOLVE_HOSTNAME",
0x2811: "ER_CONN_TCP_IS_THERE_ANOTHER_USING_PORT",
0x2812: "ER_CONN_UNIX_IS_THERE_ANOTHER_USING_SOCKET",
@@ -1622,12 +1622,12 @@
0x2817: "ER_CONN_TCP_IP_NOT_LOGGED",
0x2818: "ER_CONN_TCP_RESOLVE_INFO",
0x2819: "ER_CONN_TCP_START_FAIL",
- 0x281a: "ER_CONN_TCP_LISTEN_FAIL",
- 0x281b: "ER_CONN_UNIX_PATH_TOO_LONG",
- 0x281c: "ER_CONN_UNIX_LOCK_FILE_FAIL",
- 0x281d: "ER_CONN_UNIX_NO_FD",
- 0x281e: "ER_CONN_UNIX_NO_BIND_NO_START",
- 0x281f: "ER_CONN_UNIX_LISTEN_FAILED",
+ 0x281A: "ER_CONN_TCP_LISTEN_FAIL",
+ 0x281B: "ER_CONN_UNIX_PATH_TOO_LONG",
+ 0x281C: "ER_CONN_UNIX_LOCK_FILE_FAIL",
+ 0x281D: "ER_CONN_UNIX_NO_FD",
+ 0x281E: "ER_CONN_UNIX_NO_BIND_NO_START",
+ 0x281F: "ER_CONN_UNIX_LISTEN_FAILED",
0x2820: "ER_CONN_UNIX_LOCK_FILE_GIVING_UP",
0x2821: "ER_CONN_UNIX_LOCK_FILE_CANT_CREATE",
0x2822: "ER_CONN_UNIX_LOCK_FILE_CANT_OPEN",
@@ -1638,12 +1638,12 @@
0x2827: "ER_CONN_UNIX_LOCK_FILE_CANT_DELETE",
0x2828: "ER_CONN_UNIX_LOCK_FILE_CANT_SYNC",
0x2829: "ER_CONN_UNIX_LOCK_FILE_CANT_CLOSE",
- 0x282a: "ER_CONN_SOCKET_SELECT_FAILED",
- 0x282b: "ER_CONN_SOCKET_ACCEPT_FAILED",
- 0x282c: "ER_AUTH_RSA_CANT_FIND",
- 0x282d: "ER_AUTH_RSA_CANT_PARSE",
- 0x282e: "ER_AUTH_RSA_CANT_READ",
- 0x282f: "ER_AUTH_RSA_FILES_NOT_FOUND",
+ 0x282A: "ER_CONN_SOCKET_SELECT_FAILED",
+ 0x282B: "ER_CONN_SOCKET_ACCEPT_FAILED",
+ 0x282C: "ER_AUTH_RSA_CANT_FIND",
+ 0x282D: "ER_AUTH_RSA_CANT_PARSE",
+ 0x282E: "ER_AUTH_RSA_CANT_READ",
+ 0x282F: "ER_AUTH_RSA_FILES_NOT_FOUND",
0x2830: "ER_CONN_ATTR_TRUNCATED",
0x2831: "ER_X509_CIPHERS_MISMATCH",
0x2832: "ER_X509_ISSUER_MISMATCH",
@@ -1654,12 +1654,12 @@
0x2837: "ER_X509_CANT_CHMOD_KEY",
0x2838: "ER_X509_CANT_READ_CA_KEY",
0x2839: "ER_X509_CANT_READ_CA_CERT",
- 0x283a: "ER_X509_CANT_CREATE_CERT",
- 0x283b: "ER_X509_CANT_WRITE_CERT",
- 0x283c: "ER_AUTH_CANT_CREATE_RSA_PAIR",
- 0x283d: "ER_AUTH_CANT_WRITE_PRIVKEY",
- 0x283e: "ER_AUTH_CANT_WRITE_PUBKEY",
- 0x283f: "ER_AUTH_SSL_CONF_PREVENTS_CERT_GENERATION",
+ 0x283A: "ER_X509_CANT_CREATE_CERT",
+ 0x283B: "ER_X509_CANT_WRITE_CERT",
+ 0x283C: "ER_AUTH_CANT_CREATE_RSA_PAIR",
+ 0x283D: "ER_AUTH_CANT_WRITE_PRIVKEY",
+ 0x283E: "ER_AUTH_CANT_WRITE_PUBKEY",
+ 0x283F: "ER_AUTH_SSL_CONF_PREVENTS_CERT_GENERATION",
0x2840: "ER_AUTH_USING_EXISTING_CERTS",
0x2841: "ER_AUTH_CERTS_SAVED_TO_DATADIR",
0x2842: "ER_AUTH_CERT_GENERATION_DISABLED",
@@ -1670,11 +1670,11 @@
0x2847: "ER_AUTHCACHE_PROXIES_PRIV_SKIPPED_NEEDS_RESOLVE",
0x2848: "ER_AUTHCACHE_PLUGIN_MISSING",
0x2849: "ER_AUTHCACHE_PLUGIN_CONFIG",
- 0x284b: "ER_AUTHCACHE_USER_SKIPPED_NEEDS_RESOLVE",
- 0x284c: "ER_AUTHCACHE_USER_TABLE_DODGY",
- 0x284d: "ER_AUTHCACHE_USER_IGNORED_DEPRECATED_PASSWORD",
- 0x284e: "ER_AUTHCACHE_USER_IGNORED_NEEDS_PLUGIN",
- 0x284f: "ER_AUTHCACHE_USER_IGNORED_INVALID_PASSWORD",
+ 0x284B: "ER_AUTHCACHE_USER_SKIPPED_NEEDS_RESOLVE",
+ 0x284C: "ER_AUTHCACHE_USER_TABLE_DODGY",
+ 0x284D: "ER_AUTHCACHE_USER_IGNORED_DEPRECATED_PASSWORD",
+ 0x284E: "ER_AUTHCACHE_USER_IGNORED_NEEDS_PLUGIN",
+ 0x284F: "ER_AUTHCACHE_USER_IGNORED_INVALID_PASSWORD",
0x2850: "ER_AUTHCACHE_EXPIRED_PASSWORD_UNSUPPORTED",
0x2851: "ER_NO_SUPER_WITHOUT_USER_PLUGIN",
0x2852: "ER_AUTHCACHE_DB_IGNORED_EMPTY_NAME",
@@ -1685,12 +1685,12 @@
0x2857: "ER_AUTHCACHE_CANT_INIT_GRANT_SUBSYSTEM",
0x2858: "ER_AUTHCACHE_PROCS_PRIV_SKIPPED_NEEDS_RESOLVE",
0x2859: "ER_AUTHCACHE_PROCS_PRIV_ENTRY_IGNORED_BAD_ROUTINE_TYPE",
- 0x285a: "ER_AUTHCACHE_TABLES_PRIV_SKIPPED_NEEDS_RESOLVE",
- 0x285b: "ER_USER_NOT_IN_EXTRA_USERS_BINLOG_POSSIBLY_INCOMPLETE",
- 0x285c: "ER_DD_SCHEMA_NOT_FOUND",
- 0x285d: "ER_DD_TABLE_NOT_FOUND",
- 0x285e: "ER_DD_SE_INIT_FAILED",
- 0x285f: "ER_DD_ABORTING_PARTIAL_UPGRADE",
+ 0x285A: "ER_AUTHCACHE_TABLES_PRIV_SKIPPED_NEEDS_RESOLVE",
+ 0x285B: "ER_USER_NOT_IN_EXTRA_USERS_BINLOG_POSSIBLY_INCOMPLETE",
+ 0x285C: "ER_DD_SCHEMA_NOT_FOUND",
+ 0x285D: "ER_DD_TABLE_NOT_FOUND",
+ 0x285E: "ER_DD_SE_INIT_FAILED",
+ 0x285F: "ER_DD_ABORTING_PARTIAL_UPGRADE",
0x2860: "ER_DD_FRM_EXISTS_FOR_TABLE",
0x2861: "ER_DD_CREATED_FOR_UPGRADE",
0x2862: "ER_ERRMSG_CANT_FIND_FILE",
@@ -1701,12 +1701,12 @@
0x2867: "ER_TABLE_INCOMPATIBLE_DECIMAL_FIELD",
0x2868: "ER_TABLE_INCOMPATIBLE_YEAR_FIELD",
0x2869: "ER_INVALID_CHARSET_AND_DEFAULT_IS_MB",
- 0x286a: "ER_TABLE_WRONG_KEY_DEFINITION",
- 0x286b: "ER_CANT_OPEN_FRM_FILE",
- 0x286c: "ER_CANT_READ_FRM_FILE",
- 0x286d: "ER_TABLE_CREATED_WITH_DIFFERENT_VERSION",
- 0x286e: "ER_VIEW_UNPARSABLE",
- 0x286f: "ER_FILE_TYPE_UNKNOWN",
+ 0x286A: "ER_TABLE_WRONG_KEY_DEFINITION",
+ 0x286B: "ER_CANT_OPEN_FRM_FILE",
+ 0x286C: "ER_CANT_READ_FRM_FILE",
+ 0x286D: "ER_TABLE_CREATED_WITH_DIFFERENT_VERSION",
+ 0x286E: "ER_VIEW_UNPARSABLE",
+ 0x286F: "ER_FILE_TYPE_UNKNOWN",
0x2870: "ER_INVALID_INFO_IN_FRM",
0x2871: "ER_CANT_OPEN_AND_LOCK_PRIVILEGE_TABLES",
0x2872: "ER_AUDIT_PLUGIN_DOES_NOT_SUPPORT_AUDIT_AUTH_EVENTS",
@@ -1717,12 +1717,12 @@
0x2877: "ER_TZ_TOO_MANY_LEAPS_IN_LEAP_SECOND_TABLE",
0x2878: "ER_TZ_ERROR_LOADING_LEAP_SECOND_TABLE",
0x2879: "ER_TZ_UNKNOWN_OR_ILLEGAL_DEFAULT_TIME_ZONE",
- 0x287a: "ER_TZ_CANT_FIND_DESCRIPTION_FOR_TIME_ZONE",
- 0x287b: "ER_TZ_CANT_FIND_DESCRIPTION_FOR_TIME_ZONE_ID",
- 0x287c: "ER_TZ_TRANSITION_TYPE_TABLE_TYPE_TOO_LARGE",
- 0x287d: "ER_TZ_TRANSITION_TYPE_TABLE_ABBREVIATIONS_EXCEED_SPACE",
- 0x287e: "ER_TZ_TRANSITION_TYPE_TABLE_LOAD_ERROR",
- 0x287f: "ER_TZ_TRANSITION_TABLE_TOO_MANY_TRANSITIONS",
+ 0x287A: "ER_TZ_CANT_FIND_DESCRIPTION_FOR_TIME_ZONE",
+ 0x287B: "ER_TZ_CANT_FIND_DESCRIPTION_FOR_TIME_ZONE_ID",
+ 0x287C: "ER_TZ_TRANSITION_TYPE_TABLE_TYPE_TOO_LARGE",
+ 0x287D: "ER_TZ_TRANSITION_TYPE_TABLE_ABBREVIATIONS_EXCEED_SPACE",
+ 0x287E: "ER_TZ_TRANSITION_TYPE_TABLE_LOAD_ERROR",
+ 0x287F: "ER_TZ_TRANSITION_TABLE_TOO_MANY_TRANSITIONS",
0x2880: "ER_TZ_TRANSITION_TABLE_BAD_TRANSITION_TYPE",
0x2881: "ER_TZ_TRANSITION_TABLE_LOAD_ERROR",
0x2882: "ER_TZ_NO_TRANSITION_TYPES_IN_TIME_ZONE",
@@ -1733,12 +1733,12 @@
0x2887: "ER_SLAVE_SQL_THREAD_STOPPED_UNTIL_CONDITION_BAD",
0x2888: "ER_SLAVE_SQL_THREAD_STOPPED_UNTIL_POSITION_REACHED",
0x2889: "ER_SLAVE_SQL_THREAD_STOPPED_BEFORE_GTIDS_ALREADY_APPLIED",
- 0x288a: "ER_SLAVE_SQL_THREAD_STOPPED_BEFORE_GTIDS_REACHED",
- 0x288b: "ER_SLAVE_SQL_THREAD_STOPPED_AFTER_GTIDS_REACHED",
- 0x288c: "ER_SLAVE_SQL_THREAD_STOPPED_GAP_TRX_PROCESSED",
- 0x288d: "ER_GROUP_REPLICATION_PLUGIN_NOT_INSTALLED",
- 0x288e: "ER_GTID_ALREADY_ADDED_BY_USER",
- 0x288f: "ER_FAILED_TO_DELETE_FROM_GTID_EXECUTED_TABLE",
+ 0x288A: "ER_SLAVE_SQL_THREAD_STOPPED_BEFORE_GTIDS_REACHED",
+ 0x288B: "ER_SLAVE_SQL_THREAD_STOPPED_AFTER_GTIDS_REACHED",
+ 0x288C: "ER_SLAVE_SQL_THREAD_STOPPED_GAP_TRX_PROCESSED",
+ 0x288D: "ER_GROUP_REPLICATION_PLUGIN_NOT_INSTALLED",
+ 0x288E: "ER_GTID_ALREADY_ADDED_BY_USER",
+ 0x288F: "ER_FAILED_TO_DELETE_FROM_GTID_EXECUTED_TABLE",
0x2890: "ER_FAILED_TO_COMPRESS_GTID_EXECUTED_TABLE",
0x2891: "ER_FAILED_TO_COMPRESS_GTID_EXECUTED_TABLE_OOM",
0x2892: "ER_FAILED_TO_INIT_THREAD_ATTR_FOR_GTID_TABLE_COMPRESSION",
@@ -1749,108 +1749,108 @@
0x2897: "ER_NPIPE_PIPE_ALREADY_IN_USE",
0x2898: "ER_NDB_SLAVE_SAW_EPOCH_LOWER_THAN_PREVIOUS_ON_START",
0x2899: "ER_NDB_SLAVE_SAW_EPOCH_LOWER_THAN_PREVIOUS",
- 0x289a: "ER_NDB_SLAVE_SAW_ALREADY_COMMITTED_EPOCH",
- 0x289b: "ER_NDB_SLAVE_PREVIOUS_EPOCH_NOT_COMMITTED",
- 0x289c: "ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN",
- 0x289d: "ER_NDB_SLAVE_LOGGING_EXCEPTIONS_TO",
- 0x289e: "ER_NDB_SLAVE_LOW_EPOCH_RESOLUTION",
- 0x289f: "ER_NDB_INFO_FOUND_UNEXPECTED_FIELD_TYPE",
- 0x28a0: "ER_NDB_INFO_FAILED_TO_CREATE_NDBINFO",
- 0x28a1: "ER_NDB_INFO_FAILED_TO_INIT_NDBINFO",
- 0x28a2: "ER_NDB_CLUSTER_WRONG_NUMBER_OF_FUNCTION_ARGUMENTS",
- 0x28a3: "ER_NDB_CLUSTER_SCHEMA_INFO",
- 0x28a4: "ER_NDB_CLUSTER_GENERIC_MESSAGE",
- 0x28a5: "ER_RPL_CANT_OPEN_INFO_TABLE",
- 0x28a6: "ER_RPL_CANT_SCAN_INFO_TABLE",
- 0x28a7: "ER_RPL_CORRUPTED_INFO_TABLE",
- 0x28a8: "ER_RPL_CORRUPTED_KEYS_IN_INFO_TABLE",
- 0x28a9: "ER_RPL_WORKER_ID_IS",
- 0x28aa: "ER_RPL_INCONSISTENT_TIMESTAMPS_IN_TRX",
- 0x28ab: "ER_RPL_INCONSISTENT_SEQUENCE_NO_IN_TRX",
- 0x28ac: "ER_RPL_CHANNELS_REQUIRE_TABLES_AS_INFO_REPOSITORIES",
- 0x28ad: "ER_RPL_CHANNELS_REQUIRE_NON_ZERO_SERVER_ID",
- 0x28ae: "ER_RPL_REPO_SHOULD_BE_TABLE",
- 0x28af: "ER_RPL_ERROR_CREATING_MASTER_INFO",
- 0x28b0: "ER_RPL_ERROR_CHANGING_MASTER_INFO_REPO_TYPE",
- 0x28b1: "ER_RPL_CHANGING_RELAY_LOG_INFO_REPO_TYPE_FAILED_DUE_TO_GAPS",
- 0x28b2: "ER_RPL_ERROR_CREATING_RELAY_LOG_INFO",
- 0x28b3: "ER_RPL_ERROR_CHANGING_RELAY_LOG_INFO_REPO_TYPE",
- 0x28b4: "ER_RPL_FAILED_TO_DELETE_FROM_SLAVE_WORKERS_INFO_REPOSITORY",
- 0x28b5: "ER_RPL_FAILED_TO_RESET_STATE_IN_SLAVE_INFO_REPOSITORY",
- 0x28b6: "ER_RPL_ERROR_CHECKING_REPOSITORY",
- 0x28b7: "ER_RPL_SLAVE_GENERIC_MESSAGE",
- 0x28b8: "ER_RPL_SLAVE_COULD_NOT_CREATE_CHANNEL_LIST",
- 0x28b9: "ER_RPL_MULTISOURCE_REQUIRES_TABLE_TYPE_REPOSITORIES",
- 0x28ba: "ER_RPL_SLAVE_FAILED_TO_INIT_A_MASTER_INFO_STRUCTURE",
- 0x28bb: "ER_RPL_SLAVE_FAILED_TO_INIT_MASTER_INFO_STRUCTURE",
- 0x28bc: "ER_RPL_SLAVE_FAILED_TO_CREATE_CHANNEL_FROM_MASTER_INFO",
- 0x28bd: "ER_RPL_FAILED_TO_CREATE_NEW_INFO_FILE",
- 0x28be: "ER_RPL_FAILED_TO_CREATE_CACHE_FOR_INFO_FILE",
- 0x28bf: "ER_RPL_FAILED_TO_OPEN_INFO_FILE",
- 0x28c0: "ER_RPL_GTID_MEMORY_FINALLY_AVAILABLE",
- 0x28c1: "ER_SERVER_COST_UNKNOWN_COST_CONSTANT",
- 0x28c2: "ER_SERVER_COST_INVALID_COST_CONSTANT",
- 0x28c3: "ER_ENGINE_COST_UNKNOWN_COST_CONSTANT",
- 0x28c4: "ER_ENGINE_COST_UNKNOWN_STORAGE_ENGINE",
- 0x28c5: "ER_ENGINE_COST_INVALID_DEVICE_TYPE_FOR_SE",
- 0x28c6: "ER_ENGINE_COST_INVALID_CONST_CONSTANT_FOR_SE_AND_DEVICE",
- 0x28c7: "ER_SERVER_COST_FAILED_TO_READ",
- 0x28c8: "ER_ENGINE_COST_FAILED_TO_READ",
- 0x28c9: "ER_FAILED_TO_OPEN_COST_CONSTANT_TABLES",
- 0x28ca: "ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM",
- 0x28cb: "ER_RPL_GTID_LOG_EVENT_IN_STREAM",
- 0x28cc: "ER_RPL_UNEXPECTED_BEGIN_IN_STREAM",
- 0x28cd: "ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM",
- 0x28ce: "ER_RPL_UNEXPECTED_XA_ROLLBACK_IN_STREAM",
- 0x28cf: "ER_EVENT_EXECUTION_FAILED_CANT_AUTHENTICATE_USER",
- 0x28d0: "ER_EVENT_EXECUTION_FAILED_USER_LOST_EVEN_PRIVILEGE",
- 0x28d1: "ER_EVENT_ERROR_DURING_COMPILATION",
- 0x28d2: "ER_EVENT_DROPPING",
- 0x28d3: "ER_NDB_SCHEMA_GENERIC_MESSAGE",
- 0x28d4: "ER_RPL_INCOMPATIBLE_DECIMAL_IN_RBR",
- 0x28d5: "ER_INIT_ROOT_WITHOUT_PASSWORD",
- 0x28d6: "ER_INIT_GENERATING_TEMP_PASSWORD_FOR_ROOT",
- 0x28d7: "ER_INIT_CANT_OPEN_BOOTSTRAP_FILE",
- 0x28d8: "ER_INIT_BOOTSTRAP_COMPLETE",
- 0x28d9: "ER_INIT_DATADIR_NOT_EMPTY_WONT_INITIALIZE",
- 0x28da: "ER_INIT_DATADIR_EXISTS_WONT_INITIALIZE",
- 0x28db: "ER_INIT_DATADIR_EXISTS_AND_PATH_TOO_LONG_WONT_INITIALIZE",
- 0x28dc: "ER_INIT_DATADIR_EXISTS_AND_NOT_WRITABLE_WONT_INITIALIZE",
- 0x28dd: "ER_INIT_CREATING_DD",
- 0x28de: "ER_RPL_BINLOG_STARTING_DUMP",
- 0x28df: "ER_RPL_BINLOG_MASTER_SENDS_HEARTBEAT",
- 0x28e0: "ER_RPL_BINLOG_SKIPPING_REMAINING_HEARTBEAT_INFO",
- 0x28e1: "ER_RPL_BINLOG_MASTER_USES_CHECKSUM_AND_SLAVE_CANT",
- 0x28e2: "ER_NDB_QUERY_FAILED",
- 0x28e3: "ER_KILLING_THREAD",
- 0x28e4: "ER_DETACHING_SESSION_LEFT_BY_PLUGIN",
- 0x28e5: "ER_CANT_DETACH_SESSION_LEFT_BY_PLUGIN",
- 0x28e6: "ER_DETACHED_SESSIONS_LEFT_BY_PLUGIN",
- 0x28e7: "ER_FAILED_TO_DECREMENT_NUMBER_OF_THREADS",
- 0x28e8: "ER_PLUGIN_DID_NOT_DEINITIALIZE_THREADS",
- 0x28e9: "ER_KILLED_THREADS_OF_PLUGIN",
- 0x28ea: "ER_NDB_SLAVE_MAX_REPLICATED_EPOCH_UNKNOWN",
- 0x28eb: "ER_NDB_SLAVE_MAX_REPLICATED_EPOCH_SET_TO",
- 0x28ec: "ER_NDB_NODE_ID_AND_MANAGEMENT_SERVER_INFO",
- 0x28ed: "ER_NDB_DISCONNECT_INFO",
- 0x28ee: "ER_NDB_COLUMN_DEFAULTS_DIFFER",
- 0x28ef: "ER_NDB_COLUMN_SHOULD_NOT_HAVE_NATIVE_DEFAULT",
- 0x28f0: "ER_NDB_FIELD_INFO",
- 0x28f1: "ER_NDB_COLUMN_INFO",
- 0x28f2: "ER_NDB_OOM_IN_FIX_UNIQUE_INDEX_ATTR_ORDER",
- 0x28f3: "ER_NDB_SLAVE_MALFORMED_EVENT_RECEIVED_ON_TABLE",
- 0x28f4: "ER_NDB_SLAVE_CONFLICT_FUNCTION_REQUIRES_ROLE",
- 0x28f5: "ER_NDB_SLAVE_CONFLICT_DETECTION_REQUIRES_TRANSACTION_IDS",
- 0x28f6: "ER_NDB_SLAVE_BINLOG_MISSING_INFO_FOR_CONFLICT_DETECTION",
- 0x28f7: "ER_NDB_ERROR_IN_READAUTOINCREMENTVALUE",
- 0x28f8: "ER_NDB_FOUND_UNCOMMITTED_AUTOCOMMIT",
- 0x28f9: "ER_NDB_SLAVE_TOO_MANY_RETRIES",
- 0x28fa: "ER_NDB_SLAVE_ERROR_IN_UPDATE_CREATE_INFO",
- 0x28fb: "ER_NDB_SLAVE_CANT_ALLOCATE_TABLE_SHARE",
- 0x28fc: "ER_NDB_BINLOG_ERROR_INFO_FROM_DA",
- 0x28fd: "ER_NDB_BINLOG_CREATE_TABLE_EVENT",
- 0x28fe: "ER_NDB_BINLOG_FAILED_CREATE_TABLE_EVENT_OPERATIONS",
- 0x28ff: "ER_NDB_BINLOG_RENAME_EVENT",
+ 0x289A: "ER_NDB_SLAVE_SAW_ALREADY_COMMITTED_EPOCH",
+ 0x289B: "ER_NDB_SLAVE_PREVIOUS_EPOCH_NOT_COMMITTED",
+ 0x289C: "ER_NDB_SLAVE_MISSING_DATA_FOR_TIMESTAMP_COLUMN",
+ 0x289D: "ER_NDB_SLAVE_LOGGING_EXCEPTIONS_TO",
+ 0x289E: "ER_NDB_SLAVE_LOW_EPOCH_RESOLUTION",
+ 0x289F: "ER_NDB_INFO_FOUND_UNEXPECTED_FIELD_TYPE",
+ 0x28A0: "ER_NDB_INFO_FAILED_TO_CREATE_NDBINFO",
+ 0x28A1: "ER_NDB_INFO_FAILED_TO_INIT_NDBINFO",
+ 0x28A2: "ER_NDB_CLUSTER_WRONG_NUMBER_OF_FUNCTION_ARGUMENTS",
+ 0x28A3: "ER_NDB_CLUSTER_SCHEMA_INFO",
+ 0x28A4: "ER_NDB_CLUSTER_GENERIC_MESSAGE",
+ 0x28A5: "ER_RPL_CANT_OPEN_INFO_TABLE",
+ 0x28A6: "ER_RPL_CANT_SCAN_INFO_TABLE",
+ 0x28A7: "ER_RPL_CORRUPTED_INFO_TABLE",
+ 0x28A8: "ER_RPL_CORRUPTED_KEYS_IN_INFO_TABLE",
+ 0x28A9: "ER_RPL_WORKER_ID_IS",
+ 0x28AA: "ER_RPL_INCONSISTENT_TIMESTAMPS_IN_TRX",
+ 0x28AB: "ER_RPL_INCONSISTENT_SEQUENCE_NO_IN_TRX",
+ 0x28AC: "ER_RPL_CHANNELS_REQUIRE_TABLES_AS_INFO_REPOSITORIES",
+ 0x28AD: "ER_RPL_CHANNELS_REQUIRE_NON_ZERO_SERVER_ID",
+ 0x28AE: "ER_RPL_REPO_SHOULD_BE_TABLE",
+ 0x28AF: "ER_RPL_ERROR_CREATING_MASTER_INFO",
+ 0x28B0: "ER_RPL_ERROR_CHANGING_MASTER_INFO_REPO_TYPE",
+ 0x28B1: "ER_RPL_CHANGING_RELAY_LOG_INFO_REPO_TYPE_FAILED_DUE_TO_GAPS",
+ 0x28B2: "ER_RPL_ERROR_CREATING_RELAY_LOG_INFO",
+ 0x28B3: "ER_RPL_ERROR_CHANGING_RELAY_LOG_INFO_REPO_TYPE",
+ 0x28B4: "ER_RPL_FAILED_TO_DELETE_FROM_SLAVE_WORKERS_INFO_REPOSITORY",
+ 0x28B5: "ER_RPL_FAILED_TO_RESET_STATE_IN_SLAVE_INFO_REPOSITORY",
+ 0x28B6: "ER_RPL_ERROR_CHECKING_REPOSITORY",
+ 0x28B7: "ER_RPL_SLAVE_GENERIC_MESSAGE",
+ 0x28B8: "ER_RPL_SLAVE_COULD_NOT_CREATE_CHANNEL_LIST",
+ 0x28B9: "ER_RPL_MULTISOURCE_REQUIRES_TABLE_TYPE_REPOSITORIES",
+ 0x28BA: "ER_RPL_SLAVE_FAILED_TO_INIT_A_MASTER_INFO_STRUCTURE",
+ 0x28BB: "ER_RPL_SLAVE_FAILED_TO_INIT_MASTER_INFO_STRUCTURE",
+ 0x28BC: "ER_RPL_SLAVE_FAILED_TO_CREATE_CHANNEL_FROM_MASTER_INFO",
+ 0x28BD: "ER_RPL_FAILED_TO_CREATE_NEW_INFO_FILE",
+ 0x28BE: "ER_RPL_FAILED_TO_CREATE_CACHE_FOR_INFO_FILE",
+ 0x28BF: "ER_RPL_FAILED_TO_OPEN_INFO_FILE",
+ 0x28C0: "ER_RPL_GTID_MEMORY_FINALLY_AVAILABLE",
+ 0x28C1: "ER_SERVER_COST_UNKNOWN_COST_CONSTANT",
+ 0x28C2: "ER_SERVER_COST_INVALID_COST_CONSTANT",
+ 0x28C3: "ER_ENGINE_COST_UNKNOWN_COST_CONSTANT",
+ 0x28C4: "ER_ENGINE_COST_UNKNOWN_STORAGE_ENGINE",
+ 0x28C5: "ER_ENGINE_COST_INVALID_DEVICE_TYPE_FOR_SE",
+ 0x28C6: "ER_ENGINE_COST_INVALID_CONST_CONSTANT_FOR_SE_AND_DEVICE",
+ 0x28C7: "ER_SERVER_COST_FAILED_TO_READ",
+ 0x28C8: "ER_ENGINE_COST_FAILED_TO_READ",
+ 0x28C9: "ER_FAILED_TO_OPEN_COST_CONSTANT_TABLES",
+ 0x28CA: "ER_RPL_UNSUPPORTED_UNIGNORABLE_EVENT_IN_STREAM",
+ 0x28CB: "ER_RPL_GTID_LOG_EVENT_IN_STREAM",
+ 0x28CC: "ER_RPL_UNEXPECTED_BEGIN_IN_STREAM",
+ 0x28CD: "ER_RPL_UNEXPECTED_COMMIT_ROLLBACK_OR_XID_LOG_EVENT_IN_STREAM",
+ 0x28CE: "ER_RPL_UNEXPECTED_XA_ROLLBACK_IN_STREAM",
+ 0x28CF: "ER_EVENT_EXECUTION_FAILED_CANT_AUTHENTICATE_USER",
+ 0x28D0: "ER_EVENT_EXECUTION_FAILED_USER_LOST_EVEN_PRIVILEGE",
+ 0x28D1: "ER_EVENT_ERROR_DURING_COMPILATION",
+ 0x28D2: "ER_EVENT_DROPPING",
+ 0x28D3: "ER_NDB_SCHEMA_GENERIC_MESSAGE",
+ 0x28D4: "ER_RPL_INCOMPATIBLE_DECIMAL_IN_RBR",
+ 0x28D5: "ER_INIT_ROOT_WITHOUT_PASSWORD",
+ 0x28D6: "ER_INIT_GENERATING_TEMP_PASSWORD_FOR_ROOT",
+ 0x28D7: "ER_INIT_CANT_OPEN_BOOTSTRAP_FILE",
+ 0x28D8: "ER_INIT_BOOTSTRAP_COMPLETE",
+ 0x28D9: "ER_INIT_DATADIR_NOT_EMPTY_WONT_INITIALIZE",
+ 0x28DA: "ER_INIT_DATADIR_EXISTS_WONT_INITIALIZE",
+ 0x28DB: "ER_INIT_DATADIR_EXISTS_AND_PATH_TOO_LONG_WONT_INITIALIZE",
+ 0x28DC: "ER_INIT_DATADIR_EXISTS_AND_NOT_WRITABLE_WONT_INITIALIZE",
+ 0x28DD: "ER_INIT_CREATING_DD",
+ 0x28DE: "ER_RPL_BINLOG_STARTING_DUMP",
+ 0x28DF: "ER_RPL_BINLOG_MASTER_SENDS_HEARTBEAT",
+ 0x28E0: "ER_RPL_BINLOG_SKIPPING_REMAINING_HEARTBEAT_INFO",
+ 0x28E1: "ER_RPL_BINLOG_MASTER_USES_CHECKSUM_AND_SLAVE_CANT",
+ 0x28E2: "ER_NDB_QUERY_FAILED",
+ 0x28E3: "ER_KILLING_THREAD",
+ 0x28E4: "ER_DETACHING_SESSION_LEFT_BY_PLUGIN",
+ 0x28E5: "ER_CANT_DETACH_SESSION_LEFT_BY_PLUGIN",
+ 0x28E6: "ER_DETACHED_SESSIONS_LEFT_BY_PLUGIN",
+ 0x28E7: "ER_FAILED_TO_DECREMENT_NUMBER_OF_THREADS",
+ 0x28E8: "ER_PLUGIN_DID_NOT_DEINITIALIZE_THREADS",
+ 0x28E9: "ER_KILLED_THREADS_OF_PLUGIN",
+ 0x28EA: "ER_NDB_SLAVE_MAX_REPLICATED_EPOCH_UNKNOWN",
+ 0x28EB: "ER_NDB_SLAVE_MAX_REPLICATED_EPOCH_SET_TO",
+ 0x28EC: "ER_NDB_NODE_ID_AND_MANAGEMENT_SERVER_INFO",
+ 0x28ED: "ER_NDB_DISCONNECT_INFO",
+ 0x28EE: "ER_NDB_COLUMN_DEFAULTS_DIFFER",
+ 0x28EF: "ER_NDB_COLUMN_SHOULD_NOT_HAVE_NATIVE_DEFAULT",
+ 0x28F0: "ER_NDB_FIELD_INFO",
+ 0x28F1: "ER_NDB_COLUMN_INFO",
+ 0x28F2: "ER_NDB_OOM_IN_FIX_UNIQUE_INDEX_ATTR_ORDER",
+ 0x28F3: "ER_NDB_SLAVE_MALFORMED_EVENT_RECEIVED_ON_TABLE",
+ 0x28F4: "ER_NDB_SLAVE_CONFLICT_FUNCTION_REQUIRES_ROLE",
+ 0x28F5: "ER_NDB_SLAVE_CONFLICT_DETECTION_REQUIRES_TRANSACTION_IDS",
+ 0x28F6: "ER_NDB_SLAVE_BINLOG_MISSING_INFO_FOR_CONFLICT_DETECTION",
+ 0x28F7: "ER_NDB_ERROR_IN_READAUTOINCREMENTVALUE",
+ 0x28F8: "ER_NDB_FOUND_UNCOMMITTED_AUTOCOMMIT",
+ 0x28F9: "ER_NDB_SLAVE_TOO_MANY_RETRIES",
+ 0x28FA: "ER_NDB_SLAVE_ERROR_IN_UPDATE_CREATE_INFO",
+ 0x28FB: "ER_NDB_SLAVE_CANT_ALLOCATE_TABLE_SHARE",
+ 0x28FC: "ER_NDB_BINLOG_ERROR_INFO_FROM_DA",
+ 0x28FD: "ER_NDB_BINLOG_CREATE_TABLE_EVENT",
+ 0x28FE: "ER_NDB_BINLOG_FAILED_CREATE_TABLE_EVENT_OPERATIONS",
+ 0x28FF: "ER_NDB_BINLOG_RENAME_EVENT",
0x2900: "ER_NDB_BINLOG_FAILED_CREATE_EVENT_OPERATIONS_DURING_RENAME",
0x2901: "ER_NDB_UNEXPECTED_RENAME_TYPE",
0x2902: "ER_NDB_ERROR_IN_GET_AUTO_INCREMENT",
@@ -1861,12 +1861,12 @@
0x2907: "ER_NDB_TRAILING_SHARE_RELEASED_BY_CLOSE_CACHED_TABLES",
0x2908: "ER_NDB_SHARE_ALREADY_EXISTS",
0x2909: "ER_NDB_HANDLE_TRAILING_SHARE_INFO",
- 0x290a: "ER_NDB_CLUSTER_GET_SHARE_INFO",
- 0x290b: "ER_NDB_CLUSTER_REAL_FREE_SHARE_INFO",
- 0x290c: "ER_NDB_CLUSTER_REAL_FREE_SHARE_DROP_FAILED",
- 0x290d: "ER_NDB_CLUSTER_FREE_SHARE_INFO",
- 0x290e: "ER_NDB_CLUSTER_MARK_SHARE_DROPPED_INFO",
- 0x290f: "ER_NDB_CLUSTER_MARK_SHARE_DROPPED_DESTROYING_SHARE",
+ 0x290A: "ER_NDB_CLUSTER_GET_SHARE_INFO",
+ 0x290B: "ER_NDB_CLUSTER_REAL_FREE_SHARE_INFO",
+ 0x290C: "ER_NDB_CLUSTER_REAL_FREE_SHARE_DROP_FAILED",
+ 0x290D: "ER_NDB_CLUSTER_FREE_SHARE_INFO",
+ 0x290E: "ER_NDB_CLUSTER_MARK_SHARE_DROPPED_INFO",
+ 0x290F: "ER_NDB_CLUSTER_MARK_SHARE_DROPPED_DESTROYING_SHARE",
0x2910: "ER_NDB_CLUSTER_OOM_THD_NDB",
0x2911: "ER_NDB_BINLOG_NDB_TABLES_INITIALLY_READ_ONLY",
0x2912: "ER_NDB_UTIL_THREAD_OOM",
@@ -1877,12 +1877,12 @@
0x2917: "ER_DBUG_CHECK_SHARES_DROPPED",
0x2918: "ER_INVALID_OR_OLD_TABLE_OR_DB_NAME",
0x2919: "ER_TC_RECOVERING_AFTER_CRASH_USING",
- 0x291a: "ER_TC_CANT_AUTO_RECOVER_WITH_TC_HEURISTIC_RECOVER",
- 0x291b: "ER_TC_BAD_MAGIC_IN_TC_LOG",
- 0x291c: "ER_TC_NEED_N_SE_SUPPORTING_2PC_FOR_RECOVERY",
- 0x291d: "ER_TC_RECOVERY_FAILED_THESE_ARE_YOUR_OPTIONS",
- 0x291e: "ER_TC_HEURISTIC_RECOVERY_MODE",
- 0x291f: "ER_TC_HEURISTIC_RECOVERY_FAILED",
+ 0x291A: "ER_TC_CANT_AUTO_RECOVER_WITH_TC_HEURISTIC_RECOVER",
+ 0x291B: "ER_TC_BAD_MAGIC_IN_TC_LOG",
+ 0x291C: "ER_TC_NEED_N_SE_SUPPORTING_2PC_FOR_RECOVERY",
+ 0x291D: "ER_TC_RECOVERY_FAILED_THESE_ARE_YOUR_OPTIONS",
+ 0x291E: "ER_TC_HEURISTIC_RECOVERY_MODE",
+ 0x291F: "ER_TC_HEURISTIC_RECOVERY_FAILED",
0x2920: "ER_TC_RESTART_WITHOUT_TC_HEURISTIC_RECOVER",
0x2921: "ER_RPL_SLAVE_FAILED_TO_CREATE_OR_RECOVER_INFO_REPOSITORIES",
0x2922: "ER_RPL_SLAVE_AUTO_POSITION_IS_1_AND_GTID_MODE_IS_OFF",
@@ -1893,12 +1893,12 @@
0x2927: "ER_RPL_RECOVERY_ERROR_FREEING_IO_CACHE",
0x2928: "ER_RPL_RECOVERY_SKIPPED_GROUP_REPLICATION_CHANNEL",
0x2929: "ER_RPL_RECOVERY_ERROR",
- 0x292a: "ER_RPL_RECOVERY_IO_ERROR_READING_RELAY_LOG_INDEX",
- 0x292b: "ER_RPL_RECOVERY_FILE_MASTER_POS_INFO",
- 0x292c: "ER_RPL_RECOVERY_REPLICATE_SAME_SERVER_ID_REQUIRES_POSITION",
- 0x292d: "ER_RPL_MTS_RECOVERY_STARTING_COORDINATOR",
- 0x292e: "ER_RPL_MTS_RECOVERY_FAILED_TO_START_COORDINATOR",
- 0x292f: "ER_RPL_MTS_AUTOMATIC_RECOVERY_FAILED",
+ 0x292A: "ER_RPL_RECOVERY_IO_ERROR_READING_RELAY_LOG_INDEX",
+ 0x292B: "ER_RPL_RECOVERY_FILE_MASTER_POS_INFO",
+ 0x292C: "ER_RPL_RECOVERY_REPLICATE_SAME_SERVER_ID_REQUIRES_POSITION",
+ 0x292D: "ER_RPL_MTS_RECOVERY_STARTING_COORDINATOR",
+ 0x292E: "ER_RPL_MTS_RECOVERY_FAILED_TO_START_COORDINATOR",
+ 0x292F: "ER_RPL_MTS_AUTOMATIC_RECOVERY_FAILED",
0x2930: "ER_RPL_MTS_RECOVERY_CANT_OPEN_RELAY_LOG",
0x2931: "ER_RPL_MTS_RECOVERY_SUCCESSFUL",
0x2932: "ER_RPL_SERVER_ID_MISSING",
@@ -1909,12 +1909,12 @@
0x2937: "ER_RPL_SLAVE_SECONDS_BEHIND_MASTER_DUBIOUS",
0x2938: "ER_RPL_SLAVE_CANT_FLUSH_MASTER_INFO_FILE",
0x2939: "ER_RPL_SLAVE_REPORT_HOST_TOO_LONG",
- 0x293a: "ER_RPL_SLAVE_REPORT_USER_TOO_LONG",
- 0x293b: "ER_RPL_SLAVE_REPORT_PASSWORD_TOO_LONG",
- 0x293c: "ER_RPL_SLAVE_ERROR_RETRYING",
- 0x293d: "ER_RPL_SLAVE_ERROR_READING_FROM_SERVER",
- 0x293e: "ER_RPL_SLAVE_DUMP_THREAD_KILLED_BY_MASTER",
- 0x293f: "ER_RPL_MTS_STATISTICS",
+ 0x293A: "ER_RPL_SLAVE_REPORT_USER_TOO_LONG",
+ 0x293B: "ER_RPL_SLAVE_REPORT_PASSWORD_TOO_LONG",
+ 0x293C: "ER_RPL_SLAVE_ERROR_RETRYING",
+ 0x293D: "ER_RPL_SLAVE_ERROR_READING_FROM_SERVER",
+ 0x293E: "ER_RPL_SLAVE_DUMP_THREAD_KILLED_BY_MASTER",
+ 0x293F: "ER_RPL_MTS_STATISTICS",
0x2940: "ER_RPL_MTS_RECOVERY_COMPLETE",
0x2941: "ER_RPL_SLAVE_CANT_INIT_RELAY_LOG_POSITION",
0x2942: "ER_RPL_SLAVE_CONNECTED_TO_MASTER_REPLICATION_STARTED",
@@ -1925,12 +1925,12 @@
0x2947: "ER_RPL_LOG_ENTRY_EXCEEDS_SLAVE_MAX_ALLOWED_PACKET",
0x2948: "ER_RPL_SLAVE_STOPPING_AS_MASTER_OOM",
0x2949: "ER_RPL_SLAVE_IO_THREAD_ABORTED_WAITING_FOR_RELAY_LOG_SPACE",
- 0x294a: "ER_RPL_SLAVE_IO_THREAD_EXITING",
- 0x294b: "ER_RPL_SLAVE_CANT_INITIALIZE_SLAVE_WORKER",
- 0x294c: "ER_RPL_MTS_GROUP_RECOVERY_RELAY_LOG_INFO_FOR_WORKER",
- 0x294d: "ER_RPL_ERROR_LOOKING_FOR_LOG",
- 0x294e: "ER_RPL_MTS_GROUP_RECOVERY_RELAY_LOG_INFO",
- 0x294f: "ER_RPL_CANT_FIND_FOLLOWUP_FILE",
+ 0x294A: "ER_RPL_SLAVE_IO_THREAD_EXITING",
+ 0x294B: "ER_RPL_SLAVE_CANT_INITIALIZE_SLAVE_WORKER",
+ 0x294C: "ER_RPL_MTS_GROUP_RECOVERY_RELAY_LOG_INFO_FOR_WORKER",
+ 0x294D: "ER_RPL_ERROR_LOOKING_FOR_LOG",
+ 0x294E: "ER_RPL_MTS_GROUP_RECOVERY_RELAY_LOG_INFO",
+ 0x294F: "ER_RPL_CANT_FIND_FOLLOWUP_FILE",
0x2950: "ER_RPL_MTS_CHECKPOINT_PERIOD_DIFFERS_FROM_CNT",
0x2951: "ER_RPL_SLAVE_WORKER_THREAD_CREATION_FAILED",
0x2952: "ER_RPL_SLAVE_WORKER_THREAD_CREATION_FAILED_WITH_ERRNO",
@@ -1941,12 +1941,12 @@
0x2957: "ER_RPL_SLAVE_ADDITIONAL_ERROR_INFO_FROM_DA",
0x2958: "ER_RPL_SLAVE_ERROR_INFO_FROM_DA",
0x2959: "ER_RPL_SLAVE_ERROR_LOADING_USER_DEFINED_LIBRARY",
- 0x295a: "ER_RPL_SLAVE_ERROR_RUNNING_QUERY",
- 0x295b: "ER_RPL_SLAVE_SQL_THREAD_EXITING",
- 0x295c: "ER_RPL_SLAVE_READ_INVALID_EVENT_FROM_MASTER",
- 0x295d: "ER_RPL_SLAVE_QUEUE_EVENT_FAILED_INVALID_CONFIGURATION",
- 0x295e: "ER_RPL_SLAVE_IO_THREAD_DETECTED_UNEXPECTED_EVENT_SEQUENCE",
- 0x295f: "ER_RPL_SLAVE_CANT_USE_CHARSET",
+ 0x295A: "ER_RPL_SLAVE_ERROR_RUNNING_QUERY",
+ 0x295B: "ER_RPL_SLAVE_SQL_THREAD_EXITING",
+ 0x295C: "ER_RPL_SLAVE_READ_INVALID_EVENT_FROM_MASTER",
+ 0x295D: "ER_RPL_SLAVE_QUEUE_EVENT_FAILED_INVALID_CONFIGURATION",
+ 0x295E: "ER_RPL_SLAVE_IO_THREAD_DETECTED_UNEXPECTED_EVENT_SEQUENCE",
+ 0x295F: "ER_RPL_SLAVE_CANT_USE_CHARSET",
0x2960: "ER_RPL_SLAVE_CONNECTED_TO_MASTER_REPLICATION_RESUMED",
0x2961: "ER_RPL_SLAVE_NEXT_LOG_IS_ACTIVE",
0x2962: "ER_RPL_SLAVE_NEXT_LOG_IS_INACTIVE",
@@ -1957,12 +1957,12 @@
0x2967: "ER_RPL_FAILED_TO_STAT_LOG_IN_INDEX",
0x2968: "ER_RPL_LOG_NOT_FOUND_WHILE_COUNTING_RELAY_LOG_SPACE",
0x2969: "ER_SLAVE_CANT_USE_TEMPDIR",
- 0x296a: "ER_RPL_RELAY_LOG_NEEDS_FILE_NOT_DIRECTORY",
- 0x296b: "ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY",
- 0x296c: "ER_RPL_PLEASE_USE_OPTION_RELAY_LOG",
- 0x296d: "ER_RPL_OPEN_INDEX_FILE_FAILED",
- 0x296e: "ER_RPL_CANT_INITIALIZE_GTID_SETS_IN_RLI_INIT_INFO",
- 0x296f: "ER_RPL_CANT_OPEN_LOG_IN_RLI_INIT_INFO",
+ 0x296A: "ER_RPL_RELAY_LOG_NEEDS_FILE_NOT_DIRECTORY",
+ 0x296B: "ER_RPL_RELAY_LOG_INDEX_NEEDS_FILE_NOT_DIRECTORY",
+ 0x296C: "ER_RPL_PLEASE_USE_OPTION_RELAY_LOG",
+ 0x296D: "ER_RPL_OPEN_INDEX_FILE_FAILED",
+ 0x296E: "ER_RPL_CANT_INITIALIZE_GTID_SETS_IN_RLI_INIT_INFO",
+ 0x296F: "ER_RPL_CANT_OPEN_LOG_IN_RLI_INIT_INFO",
0x2970: "ER_RPL_ERROR_WRITING_RELAY_LOG_CONFIGURATION",
0x2971: "ER_NDB_OOM_GET_NDB_BLOBS_VALUE",
0x2972: "ER_NDB_THREAD_TIMED_OUT",
@@ -1973,12 +1973,12 @@
0x2977: "ER_NDB_DISCOVERED_MISSING_DB",
0x2978: "ER_NDB_DISCOVERED_REMAINING_DB",
0x2979: "ER_NDB_CLUSTER_FIND_ALL_DBS_RETRY",
- 0x297a: "ER_NDB_CLUSTER_FIND_ALL_DBS_FAIL",
- 0x297b: "ER_NDB_SKIPPING_SETUP_TABLE",
- 0x297c: "ER_NDB_FAILED_TO_SET_UP_TABLE",
- 0x297d: "ER_NDB_MISSING_FRM_DISCOVERING",
- 0x297e: "ER_NDB_MISMATCH_IN_FRM_DISCOVERING",
- 0x297f: "ER_NDB_BINLOG_CLEANING_UP_SETUP_LEFTOVERS",
+ 0x297A: "ER_NDB_CLUSTER_FIND_ALL_DBS_FAIL",
+ 0x297B: "ER_NDB_SKIPPING_SETUP_TABLE",
+ 0x297C: "ER_NDB_FAILED_TO_SET_UP_TABLE",
+ 0x297D: "ER_NDB_MISSING_FRM_DISCOVERING",
+ 0x297E: "ER_NDB_MISMATCH_IN_FRM_DISCOVERING",
+ 0x297F: "ER_NDB_BINLOG_CLEANING_UP_SETUP_LEFTOVERS",
0x2980: "ER_NDB_WAITING_INFO",
0x2981: "ER_NDB_WAITING_INFO_WITH_MAP",
0x2982: "ER_NDB_TIMEOUT_WHILE_DISTRIBUTING",
@@ -1989,12 +1989,12 @@
0x2987: "ER_NDB_SCHEMA_DISTRIBUTION_REPORTS_SUBSCRIBE",
0x2988: "ER_NDB_SCHEMA_DISTRIBUTION_REPORTS_UNSUBSCRIBE",
0x2989: "ER_NDB_BINLOG_CANT_DISCOVER_TABLE_FROM_SCHEMA_EVENT",
- 0x298a: "ER_NDB_BINLOG_SIGNALLING_UNKNOWN_VALUE",
- 0x298b: "ER_NDB_BINLOG_REPLY_TO",
- 0x298c: "ER_NDB_BINLOG_CANT_RELEASE_SLOCK",
- 0x298d: "ER_NDB_CANT_FIND_TABLE",
- 0x298e: "ER_NDB_DISCARDING_EVENT_NO_OBJ",
- 0x298f: "ER_NDB_DISCARDING_EVENT_ID_VERSION_MISMATCH",
+ 0x298A: "ER_NDB_BINLOG_SIGNALLING_UNKNOWN_VALUE",
+ 0x298B: "ER_NDB_BINLOG_REPLY_TO",
+ 0x298C: "ER_NDB_BINLOG_CANT_RELEASE_SLOCK",
+ 0x298D: "ER_NDB_CANT_FIND_TABLE",
+ 0x298E: "ER_NDB_DISCARDING_EVENT_NO_OBJ",
+ 0x298F: "ER_NDB_DISCARDING_EVENT_ID_VERSION_MISMATCH",
0x2990: "ER_NDB_CLEAR_SLOCK_INFO",
0x2991: "ER_NDB_BINLOG_SKIPPING_LOCAL_TABLE",
0x2992: "ER_NDB_BINLOG_ONLINE_ALTER_RENAME",
@@ -2005,1637 +2005,1637 @@
0x2997: "ER_NDB_BINLOG_SKIPPING_DROP_OF_DB_CONTAINING_LOCAL_TABLES",
0x2998: "ER_NDB_BINLOG_GOT_DIST_PRIV_EVENT_FLUSHING_PRIVILEGES",
0x2999: "ER_NDB_BINLOG_GOT_SCHEMA_EVENT",
- 0x299a: "ER_NDB_BINLOG_SKIPPING_OLD_SCHEMA_OPERATION",
- 0x299b: "ER_NDB_CLUSTER_FAILURE",
- 0x299c: "ER_NDB_TABLES_INITIALLY_READ_ONLY_ON_RECONNECT",
- 0x299d: "ER_NDB_IGNORING_UNKNOWN_EVENT",
- 0x299e: "ER_NDB_BINLOG_OPENING_INDEX",
- 0x299f: "ER_NDB_BINLOG_CANT_LOCK_NDB_BINLOG_INDEX",
- 0x29a0: "ER_NDB_BINLOG_INJECTING_RANDOM_WRITE_FAILURE",
- 0x29a1: "ER_NDB_BINLOG_CANT_WRITE_TO_NDB_BINLOG_INDEX",
- 0x29a2: "ER_NDB_BINLOG_WRITING_TO_NDB_BINLOG_INDEX",
- 0x29a3: "ER_NDB_BINLOG_CANT_COMMIT_TO_NDB_BINLOG_INDEX",
- 0x29a4: "ER_NDB_BINLOG_WRITE_TO_NDB_BINLOG_INDEX_FAILED_AFTER_KILL",
- 0x29a5: "ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT",
- 0x29a6: "ER_NDB_SERVER_ID_RESERVED_OR_TOO_LARGE",
- 0x29a7: "ER_NDB_BINLOG_NDB_LOG_TRANSACTION_ID_REQUIRES_V2_ROW_EVENTS",
- 0x29a8: "ER_NDB_BINLOG_NDB_LOG_APPLY_STATUS_FORCING_FULL_USE_WRITE",
- 0x29a9: "ER_NDB_BINLOG_GENERIC_MESSAGE",
- 0x29aa: "ER_NDB_CONFLICT_GENERIC_MESSAGE",
- 0x29ab: "ER_NDB_TRANS_DEPENDENCY_TRACKER_ERROR",
- 0x29ac: "ER_NDB_CONFLICT_FN_PARSE_ERROR",
- 0x29ad: "ER_NDB_CONFLICT_FN_SETUP_ERROR",
- 0x29ae: "ER_NDB_BINLOG_FAILED_TO_GET_TABLE",
- 0x29af: "ER_NDB_BINLOG_NOT_LOGGING",
- 0x29b0: "ER_NDB_BINLOG_CREATE_TABLE_EVENT_FAILED",
- 0x29b1: "ER_NDB_BINLOG_CREATE_TABLE_EVENT_INFO",
- 0x29b2: "ER_NDB_BINLOG_DISCOVER_TABLE_EVENT_INFO",
- 0x29b3: "ER_NDB_BINLOG_BLOB_REQUIRES_PK",
- 0x29b4: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB",
- 0x29b5: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB_AND_CANT_DROP",
- 0x29b6: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB_DROPPED",
- 0x29b7: "ER_NDB_BINLOG_DISCOVER_REUSING_OLD_EVENT_OPS",
- 0x29b8: "ER_NDB_BINLOG_CREATING_NDBEVENTOPERATION_FAILED",
- 0x29b9: "ER_NDB_BINLOG_CANT_CREATE_BLOB",
- 0x29ba: "ER_NDB_BINLOG_NDBEVENT_EXECUTE_FAILED",
- 0x29bb: "ER_NDB_CREATE_EVENT_OPS_LOGGING_INFO",
- 0x29bc: "ER_NDB_BINLOG_CANT_DROP_EVENT_FROM_DB",
- 0x29bd: "ER_NDB_TIMED_OUT_IN_DROP_TABLE",
- 0x29be: "ER_NDB_BINLOG_UNHANDLED_ERROR_FOR_TABLE",
- 0x29bf: "ER_NDB_BINLOG_CLUSTER_FAILURE",
- 0x29c0: "ER_NDB_BINLOG_UNKNOWN_NON_DATA_EVENT",
- 0x29c1: "ER_NDB_BINLOG_INJECTOR_DISCARDING_ROW_EVENT_METADATA",
- 0x29c2: "ER_NDB_REMAINING_OPEN_TABLES",
- 0x29c3: "ER_NDB_REMAINING_OPEN_TABLE_INFO",
- 0x29c4: "ER_NDB_COULD_NOT_GET_APPLY_STATUS_SHARE",
- 0x29c5: "ER_NDB_BINLOG_SERVER_SHUTDOWN_DURING_NDB_CLUSTER_START",
- 0x29c6: "ER_NDB_BINLOG_CLUSTER_RESTARTED_RESET_MASTER_SUGGESTED",
- 0x29c7: "ER_NDB_BINLOG_CLUSTER_HAS_RECONNECTED",
- 0x29c8: "ER_NDB_BINLOG_STARTING_LOG_AT_EPOCH",
- 0x29c9: "ER_NDB_BINLOG_NDB_TABLES_WRITABLE",
- 0x29ca: "ER_NDB_BINLOG_SHUTDOWN_DETECTED",
- 0x29cb: "ER_NDB_BINLOG_LOST_SCHEMA_CONNECTION_WAITING",
- 0x29cc: "ER_NDB_BINLOG_LOST_SCHEMA_CONNECTION_CONTINUING",
- 0x29cd: "ER_NDB_BINLOG_ERROR_HANDLING_SCHEMA_EVENT",
- 0x29ce: "ER_NDB_BINLOG_CANT_INJECT_APPLY_STATUS_WRITE_ROW",
- 0x29cf: "ER_NDB_BINLOG_ERROR_DURING_GCI_ROLLBACK",
- 0x29d0: "ER_NDB_BINLOG_ERROR_DURING_GCI_COMMIT",
- 0x29d1: "ER_NDB_BINLOG_LATEST_TRX_IN_EPOCH_NOT_IN_BINLOG",
- 0x29d2: "ER_NDB_BINLOG_RELEASING_EXTRA_SHARE_REFERENCES",
- 0x29d3: "ER_NDB_BINLOG_REMAINING_OPEN_TABLES",
- 0x29d4: "ER_NDB_BINLOG_REMAINING_OPEN_TABLE_INFO",
- 0x29d5: "ER_TREE_CORRUPT_PARENT_SHOULD_POINT_AT_PARENT",
- 0x29d6: "ER_TREE_CORRUPT_ROOT_SHOULD_BE_BLACK",
- 0x29d7: "ER_TREE_CORRUPT_2_CONSECUTIVE_REDS",
- 0x29d8: "ER_TREE_CORRUPT_RIGHT_IS_LEFT",
- 0x29d9: "ER_TREE_CORRUPT_INCORRECT_BLACK_COUNT",
- 0x29da: "ER_WRONG_COUNT_FOR_ORIGIN",
- 0x29db: "ER_WRONG_COUNT_FOR_KEY",
- 0x29dc: "ER_WRONG_COUNT_OF_ELEMENTS",
- 0x29dd: "ER_RPL_ERROR_READING_SLAVE_WORKER_CONFIGURATION",
- 0x29de: "ER_RPL_ERROR_WRITING_SLAVE_WORKER_CONFIGURATION",
- 0x29df: "ER_RPL_FAILED_TO_OPEN_RELAY_LOG",
- 0x29e0: "ER_RPL_WORKER_CANT_READ_RELAY_LOG",
- 0x29e1: "ER_RPL_WORKER_CANT_FIND_NEXT_RELAY_LOG",
- 0x29e2: "ER_RPL_MTS_SLAVE_COORDINATOR_HAS_WAITED",
- 0x29e3: "ER_BINLOG_FAILED_TO_WRITE_DROP_FOR_TEMP_TABLES",
- 0x29e4: "ER_BINLOG_OOM_WRITING_DELETE_WHILE_OPENING_HEAP_TABLE",
- 0x29e5: "ER_FAILED_TO_REPAIR_TABLE",
- 0x29e6: "ER_FAILED_TO_REMOVE_TEMP_TABLE",
- 0x29e7: "ER_SYSTEM_TABLE_NOT_TRANSACTIONAL",
- 0x29e8: "ER_RPL_ERROR_WRITING_MASTER_CONFIGURATION",
- 0x29e9: "ER_RPL_ERROR_READING_MASTER_CONFIGURATION",
- 0x29ea: "ER_RPL_SSL_INFO_IN_MASTER_INFO_IGNORED",
- 0x29eb: "ER_PLUGIN_FAILED_DEINITIALIZATION",
- 0x29ec: "ER_PLUGIN_HAS_NONZERO_REFCOUNT_AFTER_DEINITIALIZATION",
- 0x29ed: "ER_PLUGIN_SHUTTING_DOWN_PLUGIN",
- 0x29ee: "ER_PLUGIN_REGISTRATION_FAILED",
- 0x29ef: "ER_PLUGIN_CANT_OPEN_PLUGIN_TABLE",
- 0x29f0: "ER_PLUGIN_CANT_LOAD",
- 0x29f1: "ER_PLUGIN_LOAD_PARAMETER_TOO_LONG",
- 0x29f2: "ER_PLUGIN_FORCING_SHUTDOWN",
- 0x29f3: "ER_PLUGIN_HAS_NONZERO_REFCOUNT_AFTER_SHUTDOWN",
- 0x29f4: "ER_PLUGIN_UNKNOWN_VARIABLE_TYPE",
- 0x29f5: "ER_PLUGIN_VARIABLE_SET_READ_ONLY",
- 0x29f6: "ER_PLUGIN_VARIABLE_MISSING_NAME",
- 0x29f7: "ER_PLUGIN_VARIABLE_NOT_ALLOCATED_THREAD_LOCAL",
- 0x29f8: "ER_PLUGIN_OOM",
- 0x29f9: "ER_PLUGIN_BAD_OPTIONS",
- 0x29fa: "ER_PLUGIN_PARSING_OPTIONS_FAILED",
- 0x29fb: "ER_PLUGIN_DISABLED",
- 0x29fc: "ER_PLUGIN_HAS_CONFLICTING_SYSTEM_VARIABLES",
- 0x29fd: "ER_PLUGIN_CANT_SET_PERSISTENT_OPTIONS",
- 0x29fe: "ER_MY_NET_WRITE_FAILED_FALLING_BACK_ON_STDERR",
- 0x29ff: "ER_RETRYING_REPAIR_WITHOUT_QUICK",
- 0x2a00: "ER_RETRYING_REPAIR_WITH_KEYCACHE",
- 0x2a01: "ER_FOUND_ROWS_WHILE_REPAIRING",
- 0x2a02: "ER_ERROR_DURING_OPTIMIZE_TABLE",
- 0x2a03: "ER_ERROR_ENABLING_KEYS",
- 0x2a04: "ER_CHECKING_TABLE",
- 0x2a05: "ER_RECOVERING_TABLE",
- 0x2a06: "ER_CANT_CREATE_TABLE_SHARE_FROM_FRM",
- 0x2a07: "ER_CANT_LOCK_TABLE",
- 0x2a08: "ER_CANT_ALLOC_TABLE_OBJECT",
- 0x2a09: "ER_CANT_CREATE_HANDLER_OBJECT_FOR_TABLE",
- 0x2a0a: "ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE",
- 0x2a0b: "ER_CANT_LOCK_TABLESPACE",
- 0x2a0c: "ER_CANT_UPGRADE_GENERATED_COLUMNS_TO_DD",
- 0x2a0d: "ER_DD_ERROR_CREATING_ENTRY",
- 0x2a0e: "ER_DD_CANT_FETCH_TABLE_DATA",
- 0x2a0f: "ER_DD_CANT_FIX_SE_DATA",
- 0x2a10: "ER_DD_CANT_CREATE_SP",
- 0x2a11: "ER_CANT_OPEN_DB_OPT_USING_DEFAULT_CHARSET",
- 0x2a12: "ER_CANT_CREATE_CACHE_FOR_DB_OPT",
- 0x2a13: "ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT",
- 0x2a14: "ER_DB_OPT_NOT_FOUND_USING_DEFAULT_CHARSET",
- 0x2a15: "ER_EVENT_CANT_GET_TIMEZONE_FROM_FIELD",
- 0x2a16: "ER_EVENT_CANT_FIND_TIMEZONE",
- 0x2a17: "ER_EVENT_CANT_GET_CHARSET",
- 0x2a18: "ER_EVENT_CANT_GET_COLLATION",
- 0x2a19: "ER_EVENT_CANT_OPEN_TABLE_MYSQL_EVENT",
- 0x2a1a: "ER_CANT_PARSE_STORED_ROUTINE_BODY",
- 0x2a1b: "ER_CANT_OPEN_TABLE_MYSQL_PROC",
- 0x2a1c: "ER_CANT_READ_TABLE_MYSQL_PROC",
- 0x2a1d: "ER_FILE_EXISTS_DURING_UPGRADE",
- 0x2a1e: "ER_CANT_OPEN_DATADIR_AFTER_UPGRADE_FAILURE",
- 0x2a1f: "ER_CANT_SET_PATH_FOR",
- 0x2a20: "ER_CANT_OPEN_DIR",
- 0x2a21: "ER_NDB_EMPTY_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a22: "ER_NDB_CANT_PARSE_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a23: "ER_NDB_INVALID_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a24: "ER_NDB_DUPLICATE_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a25: "ER_NDB_POOL_SIZE_MUST_MATCH_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a26: "ER_NDB_NODEID_NOT_FIRST_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
- 0x2a27: "ER_NDB_USING_NODEID",
- 0x2a28: "ER_NDB_CANT_ALLOC_GLOBAL_NDB_CLUSTER_CONNECTION",
- 0x2a29: "ER_NDB_CANT_ALLOC_GLOBAL_NDB_OBJECT",
- 0x2a2a: "ER_NDB_USING_NODEID_LIST",
- 0x2a2b: "ER_NDB_CANT_ALLOC_NDB_CLUSTER_CONNECTION",
- 0x2a2c: "ER_NDB_STARTING_CONNECT_THREAD",
- 0x2a2d: "ER_NDB_NODE_INFO",
- 0x2a2e: "ER_NDB_CANT_START_CONNECT_THREAD",
- 0x2a2f: "ER_NDB_GENERIC_ERROR",
- 0x2a30: "ER_NDB_CPU_MASK_TOO_SHORT",
- 0x2a31: "ER_EVENT_ERROR_CREATING_QUERY_TO_WRITE_TO_BINLOG",
- 0x2a32: "ER_EVENT_SCHEDULER_ERROR_LOADING_FROM_DB",
- 0x2a33: "ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT",
- 0x2a34: "ER_EVENT_SCHEDULER_GOT_BAD_DATA_FROM_TABLE",
- 0x2a35: "ER_EVENT_CANT_GET_LOCK_FOR_DROPPING_EVENT",
- 0x2a36: "ER_EVENT_UNABLE_TO_DROP_EVENT",
- 0x2a37: "ER_BINLOG_ATTACHING_THREAD_MEMORY_FINALLY_AVAILABLE",
- 0x2a38: "ER_BINLOG_CANT_RESIZE_CACHE",
- 0x2a39: "ER_BINLOG_FILE_BEING_READ_NOT_PURGED",
- 0x2a3a: "ER_BINLOG_IO_ERROR_READING_HEADER",
- 0x2a3b: "ER_BINLOG_CANT_OPEN_LOG",
- 0x2a3c: "ER_BINLOG_CANT_CREATE_CACHE_FOR_LOG",
- 0x2a3d: "ER_BINLOG_FILE_EXTENSION_NUMBER_EXHAUSTED",
- 0x2a3e: "ER_BINLOG_FILE_NAME_TOO_LONG",
- 0x2a3f: "ER_BINLOG_FILE_EXTENSION_NUMBER_RUNNING_LOW",
- 0x2a40: "ER_BINLOG_CANT_OPEN_FOR_LOGGING",
- 0x2a41: "ER_BINLOG_FAILED_TO_SYNC_INDEX_FILE",
- 0x2a42: "ER_BINLOG_ERROR_READING_GTIDS_FROM_RELAY_LOG",
- 0x2a43: "ER_BINLOG_EVENTS_READ_FROM_RELAY_LOG_INFO",
- 0x2a44: "ER_BINLOG_ERROR_READING_GTIDS_FROM_BINARY_LOG",
- 0x2a45: "ER_BINLOG_EVENTS_READ_FROM_BINLOG_INFO",
- 0x2a46: "ER_BINLOG_CANT_GENERATE_NEW_FILE_NAME",
- 0x2a47: "ER_BINLOG_FAILED_TO_SYNC_INDEX_FILE_IN_OPEN",
- 0x2a48: "ER_BINLOG_CANT_USE_FOR_LOGGING",
- 0x2a49: "ER_BINLOG_FAILED_TO_CLOSE_INDEX_FILE_WHILE_REBUILDING",
- 0x2a4a: "ER_BINLOG_FAILED_TO_DELETE_INDEX_FILE_WHILE_REBUILDING",
- 0x2a4b: "ER_BINLOG_FAILED_TO_RENAME_INDEX_FILE_WHILE_REBUILDING",
- 0x2a4c: "ER_BINLOG_FAILED_TO_OPEN_INDEX_FILE_AFTER_REBUILDING",
- 0x2a4d: "ER_BINLOG_CANT_APPEND_LOG_TO_TMP_INDEX",
- 0x2a4e: "ER_BINLOG_CANT_LOCATE_OLD_BINLOG_OR_RELAY_LOG_FILES",
- 0x2a4f: "ER_BINLOG_CANT_DELETE_FILE",
- 0x2a50: "ER_BINLOG_CANT_SET_TMP_INDEX_NAME",
- 0x2a51: "ER_BINLOG_FAILED_TO_OPEN_TEMPORARY_INDEX_FILE",
- 0x2a52: "ER_BINLOG_ERROR_GETTING_NEXT_LOG_FROM_INDEX",
- 0x2a53: "ER_BINLOG_CANT_OPEN_TMP_INDEX",
- 0x2a54: "ER_BINLOG_CANT_COPY_INDEX_TO_TMP",
- 0x2a55: "ER_BINLOG_CANT_CLOSE_TMP_INDEX",
- 0x2a56: "ER_BINLOG_CANT_MOVE_TMP_TO_INDEX",
- 0x2a57: "ER_BINLOG_PURGE_LOGS_CALLED_WITH_FILE_NOT_IN_INDEX",
- 0x2a58: "ER_BINLOG_PURGE_LOGS_CANT_SYNC_INDEX_FILE",
- 0x2a59: "ER_BINLOG_PURGE_LOGS_CANT_COPY_TO_REGISTER_FILE",
- 0x2a5a: "ER_BINLOG_PURGE_LOGS_CANT_FLUSH_REGISTER_FILE",
- 0x2a5b: "ER_BINLOG_PURGE_LOGS_CANT_UPDATE_INDEX_FILE",
- 0x2a5c: "ER_BINLOG_PURGE_LOGS_FAILED_TO_PURGE_LOG",
- 0x2a5d: "ER_BINLOG_FAILED_TO_SET_PURGE_INDEX_FILE_NAME",
- 0x2a5e: "ER_BINLOG_FAILED_TO_OPEN_REGISTER_FILE",
- 0x2a5f: "ER_BINLOG_FAILED_TO_REINIT_REGISTER_FILE",
- 0x2a60: "ER_BINLOG_FAILED_TO_READ_REGISTER_FILE",
- 0x2a61: "ER_CANT_STAT_FILE",
- 0x2a62: "ER_BINLOG_CANT_DELETE_LOG_FILE_DOES_INDEX_MATCH_FILES",
- 0x2a63: "ER_BINLOG_CANT_DELETE_FILE_AND_READ_BINLOG_INDEX",
- 0x2a64: "ER_BINLOG_FAILED_TO_DELETE_LOG_FILE",
- 0x2a65: "ER_BINLOG_LOGGING_INCIDENT_TO_STOP_SLAVES",
- 0x2a66: "ER_BINLOG_CANT_FIND_LOG_IN_INDEX",
- 0x2a67: "ER_BINLOG_RECOVERING_AFTER_CRASH_USING",
- 0x2a68: "ER_BINLOG_CANT_OPEN_CRASHED_BINLOG",
- 0x2a69: "ER_BINLOG_CANT_TRIM_CRASHED_BINLOG",
- 0x2a6a: "ER_BINLOG_CRASHED_BINLOG_TRIMMED",
- 0x2a6b: "ER_BINLOG_CANT_CLEAR_IN_USE_FLAG_FOR_CRASHED_BINLOG",
- 0x2a6c: "ER_BINLOG_FAILED_TO_RUN_AFTER_SYNC_HOOK",
- 0x2a6d: "ER_TURNING_LOGGING_OFF_FOR_THE_DURATION",
- 0x2a6e: "ER_BINLOG_FAILED_TO_RUN_AFTER_FLUSH_HOOK",
- 0x2a6f: "ER_BINLOG_CRASH_RECOVERY_FAILED",
- 0x2a70: "ER_BINLOG_WARNING_SUPPRESSED",
- 0x2a71: "ER_NDB_LOG_ENTRY",
- 0x2a72: "ER_NDB_LOG_ENTRY_WITH_PREFIX",
- 0x2a73: "ER_NDB_BINLOG_CANT_CREATE_PURGE_THD",
- 0x2a74: "ER_INNODB_UNKNOWN_COLLATION",
- 0x2a75: "ER_INNODB_INVALID_LOG_GROUP_HOME_DIR",
- 0x2a76: "ER_INNODB_INVALID_INNODB_UNDO_DIRECTORY",
- 0x2a77: "ER_INNODB_ILLEGAL_COLON_IN_POOL",
- 0x2a78: "ER_INNODB_INVALID_PAGE_SIZE",
- 0x2a79: "ER_INNODB_DIRTY_WATER_MARK_NOT_LOW",
- 0x2a7a: "ER_INNODB_IO_CAPACITY_EXCEEDS_MAX",
- 0x2a7b: "ER_INNODB_FILES_SAME",
- 0x2a7c: "ER_INNODB_UNREGISTERED_TRX_ACTIVE",
- 0x2a7d: "ER_INNODB_CLOSING_CONNECTION_ROLLS_BACK",
- 0x2a7e: "ER_INNODB_TRX_XLATION_TABLE_OOM",
- 0x2a7f: "ER_INNODB_CANT_FIND_INDEX_IN_INNODB_DD",
- 0x2a80: "ER_INNODB_INDEX_COLUMN_INFO_UNLIKE_MYSQLS",
- 0x2a81: "ER_INNODB_CANT_OPEN_TABLE",
- 0x2a82: "ER_INNODB_CANT_BUILD_INDEX_XLATION_TABLE_FOR",
- 0x2a83: "ER_INNODB_PK_NOT_IN_MYSQL",
- 0x2a84: "ER_INNODB_PK_ONLY_IN_MYSQL",
- 0x2a85: "ER_INNODB_CLUSTERED_INDEX_PRIVATE",
- 0x2a86: "ER_INNODB_PARTITION_TABLE_LOWERCASED",
- 0x2a87: "ER_ERRMSG_REPLACEMENT_DODGY",
- 0x2a88: "ER_ERRMSG_REPLACEMENTS_FAILED",
- 0x2a89: "ER_NPIPE_CANT_CREATE",
- 0x2a8a: "ER_PARTITION_MOVE_CREATED_DUPLICATE_ROW_PLEASE_FIX",
- 0x2a8b: "ER_AUDIT_CANT_ABORT_COMMAND",
- 0x2a8c: "ER_AUDIT_CANT_ABORT_EVENT",
- 0x2a8d: "ER_AUDIT_WARNING",
- 0x2a8e: "ER_NDB_NUMBER_OF_CHANNELS",
- 0x2a8f: "ER_NDB_SLAVE_PARALLEL_WORKERS",
- 0x2a90: "ER_NDB_DISTRIBUTING_ERR",
- 0x2a91: "ER_RPL_SLAVE_INSECURE_CHANGE_MASTER",
- 0x2a92: "ER_RPL_SLAVE_FLUSH_RELAY_LOGS_NOT_ALLOWED",
- 0x2a93: "ER_RPL_SLAVE_INCORRECT_CHANNEL",
- 0x2a94: "ER_FAILED_TO_FIND_DL_ENTRY",
- 0x2a95: "ER_FAILED_TO_OPEN_SHARED_LIBRARY",
- 0x2a96: "ER_THREAD_PRIORITY_IGNORED",
- 0x2a97: "ER_BINLOG_CACHE_SIZE_TOO_LARGE",
- 0x2a98: "ER_BINLOG_STMT_CACHE_SIZE_TOO_LARGE",
- 0x2a99: "ER_FAILED_TO_GENERATE_UNIQUE_LOGFILE",
- 0x2a9a: "ER_FAILED_TO_READ_FILE",
- 0x2a9b: "ER_FAILED_TO_WRITE_TO_FILE",
- 0x2a9c: "ER_BINLOG_UNSAFE_MESSAGE_AND_STATEMENT",
- 0x2a9d: "ER_FORCE_CLOSE_THREAD",
- 0x2a9e: "ER_SERVER_SHUTDOWN_COMPLETE",
- 0x2a9f: "ER_RPL_CANT_HAVE_SAME_BASENAME",
- 0x2aa0: "ER_RPL_GTID_MODE_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON",
- 0x2aa1: "ER_WARN_NO_SERVERID_SPECIFIED",
- 0x2aa2: "ER_ABORTING_USER_CONNECTION",
- 0x2aa3: "ER_SQL_MODE_MERGED_WITH_STRICT_MODE",
- 0x2aa4: "ER_GTID_PURGED_WAS_UPDATED",
- 0x2aa5: "ER_GTID_EXECUTED_WAS_UPDATED",
- 0x2aa6: "ER_DEPRECATE_MSG_WITH_REPLACEMENT",
- 0x2aa7: "ER_TRG_CREATION_CTX_NOT_SET",
- 0x2aa8: "ER_FILE_HAS_OLD_FORMAT",
- 0x2aa9: "ER_VIEW_CREATION_CTX_NOT_SET",
- 0x2aaa: "ER_TABLE_NAME_CAUSES_TOO_LONG_PATH",
- 0x2aab: "ER_TABLE_UPGRADE_REQUIRED",
- 0x2aac: "ER_GET_ERRNO_FROM_STORAGE_ENGINE",
- 0x2aad: "ER_ACCESS_DENIED_ERROR_WITHOUT_PASSWORD",
- 0x2aae: "ER_ACCESS_DENIED_ERROR_WITH_PASSWORD",
- 0x2aaf: "ER_ACCESS_DENIED_FOR_USER_ACCOUNT_LOCKED",
- 0x2ab0: "ER_MUST_CHANGE_EXPIRED_PASSWORD",
- 0x2ab1: "ER_SYSTEM_TABLES_NOT_SUPPORTED_BY_STORAGE_ENGINE",
- 0x2ab2: "ER_FILESORT_TERMINATED",
- 0x2ab3: "ER_SERVER_STARTUP_MSG",
- 0x2ab4: "ER_FAILED_TO_FIND_LOCALE_NAME",
- 0x2ab5: "ER_FAILED_TO_FIND_COLLATION_NAME",
- 0x2ab6: "ER_SERVER_OUT_OF_RESOURCES",
- 0x2ab7: "ER_SERVER_OUTOFMEMORY",
- 0x2ab8: "ER_INVALID_COLLATION_FOR_CHARSET",
- 0x2ab9: "ER_CANT_START_ERROR_LOG_SERVICE",
- 0x2aba: "ER_CREATING_NEW_UUID_FIRST_START",
- 0x2abb: "ER_FAILED_TO_GET_ABSOLUTE_PATH",
- 0x2abc: "ER_PERFSCHEMA_COMPONENTS_INFRASTRUCTURE_BOOTSTRAP",
- 0x2abd: "ER_PERFSCHEMA_COMPONENTS_INFRASTRUCTURE_SHUTDOWN",
- 0x2abe: "ER_DUP_FD_OPEN_FAILED",
- 0x2abf: "ER_SYSTEM_VIEW_INIT_FAILED",
- 0x2ac0: "ER_RESOURCE_GROUP_POST_INIT_FAILED",
- 0x2ac1: "ER_RESOURCE_GROUP_SUBSYSTEM_INIT_FAILED",
- 0x2ac2: "ER_FAILED_START_MYSQLD_DAEMON",
- 0x2ac3: "ER_CANNOT_CHANGE_TO_ROOT_DIR",
- 0x2ac4: "ER_PERSISTENT_PRIVILEGES_BOOTSTRAP",
- 0x2ac5: "ER_BASEDIR_SET_TO",
- 0x2ac6: "ER_RPL_FILTER_ADD_WILD_DO_TABLE_FAILED",
- 0x2ac7: "ER_RPL_FILTER_ADD_WILD_IGNORE_TABLE_FAILED",
- 0x2ac8: "ER_PRIVILEGE_SYSTEM_INIT_FAILED",
- 0x2ac9: "ER_CANNOT_SET_LOG_ERROR_SERVICES",
- 0x2aca: "ER_PERFSCHEMA_TABLES_INIT_FAILED",
- 0x2acb: "ER_TX_EXTRACTION_ALGORITHM_FOR_BINLOG_TX_DEPEDENCY_TRACKING",
- 0x2acc: "ER_INVALID_REPLICATION_TIMESTAMPS",
- 0x2acd: "ER_RPL_TIMESTAMPS_RETURNED_TO_NORMAL",
- 0x2ace: "ER_BINLOG_FILE_OPEN_FAILED",
- 0x2acf: "ER_BINLOG_EVENT_WRITE_TO_STMT_CACHE_FAILED",
- 0x2ad0: "ER_SLAVE_RELAY_LOG_TRUNCATE_INFO",
- 0x2ad1: "ER_SLAVE_RELAY_LOG_PURGE_FAILED",
- 0x2ad2: "ER_RPL_SLAVE_FILTER_CREATE_FAILED",
- 0x2ad3: "ER_RPL_SLAVE_GLOBAL_FILTERS_COPY_FAILED",
- 0x2ad4: "ER_RPL_SLAVE_RESET_FILTER_OPTIONS",
- 0x2ad5: "ER_MISSING_GRANT_SYSTEM_TABLE",
- 0x2ad6: "ER_MISSING_ACL_SYSTEM_TABLE",
- 0x2ad7: "ER_ANONYMOUS_AUTH_ID_NOT_ALLOWED_IN_MANDATORY_ROLES",
- 0x2ad8: "ER_UNKNOWN_AUTH_ID_IN_MANDATORY_ROLE",
- 0x2ad9: "ER_WRITE_ROW_TO_PARTITION_FAILED",
- 0x2ada: "ER_RESOURCE_GROUP_METADATA_UPDATE_SKIPPED",
- 0x2adb: "ER_FAILED_TO_PERSIST_RESOURCE_GROUP_METADATA",
- 0x2adc: "ER_FAILED_TO_DESERIALIZE_RESOURCE_GROUP",
- 0x2add: "ER_FAILED_TO_UPDATE_RESOURCE_GROUP",
- 0x2ade: "ER_RESOURCE_GROUP_VALIDATION_FAILED",
- 0x2adf: "ER_FAILED_TO_ALLOCATE_MEMORY_FOR_RESOURCE_GROUP",
- 0x2ae0: "ER_FAILED_TO_ALLOCATE_MEMORY_FOR_RESOURCE_GROUP_HASH",
- 0x2ae1: "ER_FAILED_TO_ADD_RESOURCE_GROUP_TO_MAP",
- 0x2ae2: "ER_RESOURCE_GROUP_IS_DISABLED",
- 0x2ae3: "ER_FAILED_TO_APPLY_RESOURCE_GROUP_CONTROLLER",
- 0x2ae4: "ER_FAILED_TO_ACQUIRE_LOCK_ON_RESOURCE_GROUP",
- 0x2ae5: "ER_PFS_NOTIFICATION_FUNCTION_REGISTER_FAILED",
- 0x2ae6: "ER_RES_GRP_SET_THR_AFFINITY_FAILED",
- 0x2ae7: "ER_RES_GRP_SET_THR_AFFINITY_TO_CPUS_FAILED",
- 0x2ae8: "ER_RES_GRP_THD_UNBIND_FROM_CPU_FAILED",
- 0x2ae9: "ER_RES_GRP_SET_THREAD_PRIORITY_FAILED",
- 0x2aea: "ER_RES_GRP_FAILED_TO_DETERMINE_NICE_CAPABILITY",
- 0x2aeb: "ER_RES_GRP_FAILED_TO_GET_THREAD_HANDLE",
- 0x2aec: "ER_RES_GRP_GET_THREAD_PRIO_NOT_SUPPORTED",
- 0x2aed: "ER_RES_GRP_FAILED_DETERMINE_CPU_COUNT",
- 0x2aee: "ER_RES_GRP_FEATURE_NOT_AVAILABLE",
- 0x2aef: "ER_RES_GRP_INVALID_THREAD_PRIORITY",
- 0x2af0: "ER_RES_GRP_SOLARIS_PROCESSOR_BIND_TO_CPUID_FAILED",
- 0x2af1: "ER_RES_GRP_SOLARIS_PROCESSOR_BIND_TO_THREAD_FAILED",
- 0x2af2: "ER_RES_GRP_SOLARIS_PROCESSOR_AFFINITY_FAILED",
- 0x2af3: "ER_DD_UPGRADE_RENAME_IDX_STATS_FILE_FAILED",
- 0x2af4: "ER_DD_UPGRADE_DD_OPEN_FAILED",
- 0x2af5: "ER_DD_UPGRADE_FAILED_TO_FETCH_TABLESPACES",
- 0x2af6: "ER_DD_UPGRADE_FAILED_TO_ACQUIRE_TABLESPACE",
- 0x2af7: "ER_DD_UPGRADE_FAILED_TO_RESOLVE_TABLESPACE_ENGINE",
- 0x2af8: "ER_FAILED_TO_CREATE_SDI_FOR_TABLESPACE",
- 0x2af9: "ER_FAILED_TO_STORE_SDI_FOR_TABLESPACE",
- 0x2afa: "ER_DD_UPGRADE_FAILED_TO_FETCH_TABLES",
- 0x2afb: "ER_DD_UPGRADE_DD_POPULATED",
- 0x2afc: "ER_DD_UPGRADE_INFO_FILE_OPEN_FAILED",
- 0x2afd: "ER_DD_UPGRADE_INFO_FILE_CLOSE_FAILED",
- 0x2afe: "ER_DD_UPGRADE_TABLESPACE_MIGRATION_FAILED",
- 0x2aff: "ER_DD_UPGRADE_FAILED_TO_CREATE_TABLE_STATS",
- 0x2b00: "ER_DD_UPGRADE_TABLE_STATS_MIGRATE_COMPLETED",
- 0x2b01: "ER_DD_UPGRADE_FAILED_TO_CREATE_INDEX_STATS",
- 0x2b02: "ER_DD_UPGRADE_INDEX_STATS_MIGRATE_COMPLETED",
- 0x2b03: "ER_DD_UPGRADE_FAILED_FIND_VALID_DATA_DIR",
- 0x2b04: "ER_DD_UPGRADE_START",
- 0x2b05: "ER_DD_UPGRADE_FAILED_INIT_DD_SE",
- 0x2b06: "ER_DD_UPGRADE_FOUND_PARTIALLY_UPGRADED_DD_ABORT",
- 0x2b07: "ER_DD_UPGRADE_FOUND_PARTIALLY_UPGRADED_DD_CONTINUE",
- 0x2b08: "ER_DD_UPGRADE_SE_LOGS_FAILED",
- 0x2b09: "ER_DD_UPGRADE_SDI_INFO_UPDATE_FAILED",
- 0x2b0a: "ER_SKIP_UPDATING_METADATA_IN_SE_RO_MODE",
- 0x2b0b: "ER_CREATED_SYSTEM_WITH_VERSION",
- 0x2b0c: "ER_UNKNOWN_ERROR_DETECTED_IN_SE",
- 0x2b0d: "ER_READ_LOG_EVENT_FAILED",
- 0x2b0e: "ER_ROW_DATA_TOO_BIG_TO_WRITE_IN_BINLOG",
- 0x2b0f: "ER_FAILED_TO_CONSTRUCT_DROP_EVENT_QUERY",
- 0x2b10: "ER_FAILED_TO_BINLOG_DROP_EVENT",
- 0x2b11: "ER_FAILED_TO_START_SLAVE_THREAD",
- 0x2b12: "ER_RPL_IO_THREAD_KILLED",
- 0x2b13: "ER_SLAVE_RECONNECT_FAILED",
- 0x2b14: "ER_SLAVE_KILLED_AFTER_RECONNECT",
- 0x2b15: "ER_SLAVE_NOT_STARTED_ON_SOME_CHANNELS",
- 0x2b16: "ER_FAILED_TO_ADD_RPL_FILTER",
- 0x2b17: "ER_PER_CHANNEL_RPL_FILTER_CONF_FOR_GRP_RPL",
- 0x2b18: "ER_RPL_FILTERS_NOT_ATTACHED_TO_CHANNEL",
- 0x2b19: "ER_FAILED_TO_BUILD_DO_AND_IGNORE_TABLE_HASHES",
- 0x2b1a: "ER_CLONE_PLUGIN_NOT_LOADED",
- 0x2b1b: "ER_CLONE_HANDLER_EXISTS",
- 0x2b1c: "ER_FAILED_TO_CREATE_CLONE_HANDLER",
- 0x2b1d: "ER_CYCLE_TIMER_IS_NOT_AVAILABLE",
- 0x2b1e: "ER_NANOSECOND_TIMER_IS_NOT_AVAILABLE",
- 0x2b1f: "ER_MICROSECOND_TIMER_IS_NOT_AVAILABLE",
- 0x2b20: "ER_PFS_MALLOC_ARRAY_OVERFLOW",
- 0x2b21: "ER_PFS_MALLOC_ARRAY_OOM",
- 0x2b22: "ER_INNODB_FAILED_TO_FIND_IDX_WITH_KEY_NO",
- 0x2b23: "ER_INNODB_FAILED_TO_FIND_IDX",
- 0x2b24: "ER_INNODB_FAILED_TO_FIND_IDX_FROM_DICT_CACHE",
- 0x2b25: "ER_INNODB_ACTIVE_INDEX_CHANGE_FAILED",
- 0x2b26: "ER_INNODB_DIFF_IN_REF_LEN",
- 0x2b27: "ER_WRONG_TYPE_FOR_COLUMN_PREFIX_IDX_FLD",
- 0x2b28: "ER_INNODB_CANNOT_CREATE_TABLE",
- 0x2b29: "ER_INNODB_INTERNAL_INDEX",
- 0x2b2a: "ER_INNODB_IDX_CNT_MORE_THAN_DEFINED_IN_MYSQL",
- 0x2b2b: "ER_INNODB_IDX_CNT_FEWER_THAN_DEFINED_IN_MYSQL",
- 0x2b2c: "ER_INNODB_IDX_COLUMN_CNT_DIFF",
- 0x2b2d: "ER_INNODB_USE_MONITOR_GROUP_NAME",
- 0x2b2e: "ER_INNODB_MONITOR_DEFAULT_VALUE_NOT_DEFINED",
- 0x2b2f: "ER_INNODB_MONITOR_IS_ENABLED",
- 0x2b30: "ER_INNODB_INVALID_MONITOR_COUNTER_NAME",
- 0x2b31: "ER_WIN_LOAD_LIBRARY_FAILED",
- 0x2b32: "ER_PARTITION_HANDLER_ADMIN_MSG",
- 0x2b33: "ER_RPL_RLI_INIT_INFO_MSG",
- 0x2b34: "ER_DD_UPGRADE_TABLE_INTACT_ERROR",
- 0x2b35: "ER_SERVER_INIT_COMPILED_IN_COMMANDS",
- 0x2b36: "ER_MYISAM_CHECK_METHOD_ERROR",
- 0x2b37: "ER_MYISAM_CRASHED_ERROR",
- 0x2b38: "ER_WAITPID_FAILED",
- 0x2b39: "ER_FAILED_TO_FIND_MYSQLD_STATUS",
- 0x2b3a: "ER_INNODB_ERROR_LOGGER_MSG",
- 0x2b3b: "ER_INNODB_ERROR_LOGGER_FATAL_MSG",
- 0x2b3c: "ER_DEPRECATED_SYNTAX_WITH_REPLACEMENT",
- 0x2b3d: "ER_DEPRECATED_SYNTAX_NO_REPLACEMENT",
- 0x2b3e: "ER_DEPRECATE_MSG_NO_REPLACEMENT",
- 0x2b3f: "ER_LOG_PRINTF_MSG",
- 0x2b40: "ER_BINLOG_LOGGING_NOT_POSSIBLE",
- 0x2b41: "ER_FAILED_TO_SET_PERSISTED_OPTIONS",
- 0x2b42: "ER_COMPONENTS_FAILED_TO_ACQUIRE_SERVICE_IMPLEMENTATION",
- 0x2b43: "ER_RES_GRP_INVALID_VCPU_RANGE",
- 0x2b44: "ER_RES_GRP_INVALID_VCPU_ID",
- 0x2b45: "ER_ERROR_DURING_FLUSH_LOG_COMMIT_PHASE",
- 0x2b46: "ER_DROP_DATABASE_FAILED_RMDIR_MANUALLY",
- 0x2b47: "ER_EXPIRE_LOGS_DAYS_IGNORED",
- 0x2b48: "ER_BINLOG_MALFORMED_OR_OLD_RELAY_LOG",
- 0x2b49: "ER_DD_UPGRADE_VIEW_COLUMN_NAME_TOO_LONG",
- 0x2b4a: "ER_TABLE_NEEDS_DUMP_UPGRADE",
- 0x2b4b: "ER_DD_UPGRADE_FAILED_TO_UPDATE_VER_NO_IN_TABLESPACE",
- 0x2b4c: "ER_KEYRING_MIGRATION_FAILED",
- 0x2b4d: "ER_KEYRING_MIGRATION_SUCCESSFUL",
- 0x2b4e: "ER_RESTART_RECEIVED_INFO",
- 0x2b4f: "ER_LCTN_CHANGED",
- 0x2b50: "ER_DD_INITIALIZE",
- 0x2b51: "ER_DD_RESTART",
- 0x2b52: "ER_DD_UPGRADE",
- 0x2b53: "ER_DD_UPGRADE_OFF",
- 0x2b54: "ER_DD_UPGRADE_VERSION_NOT_SUPPORTED",
- 0x2b55: "ER_DD_UPGRADE_SCHEMA_UNAVAILABLE",
- 0x2b56: "ER_DD_MINOR_DOWNGRADE",
- 0x2b57: "ER_DD_MINOR_DOWNGRADE_VERSION_NOT_SUPPORTED",
- 0x2b58: "ER_DD_NO_VERSION_FOUND",
- 0x2b59: "ER_THREAD_POOL_NOT_SUPPORTED_ON_PLATFORM",
- 0x2b5a: "ER_THREAD_POOL_SIZE_TOO_LOW",
- 0x2b5b: "ER_THREAD_POOL_SIZE_TOO_HIGH",
- 0x2b5c: "ER_THREAD_POOL_ALGORITHM_INVALID",
- 0x2b5d: "ER_THREAD_POOL_INVALID_STALL_LIMIT",
- 0x2b5e: "ER_THREAD_POOL_INVALID_PRIO_KICKUP_TIMER",
- 0x2b5f: "ER_THREAD_POOL_MAX_UNUSED_THREADS_INVALID",
- 0x2b60: "ER_THREAD_POOL_CON_HANDLER_INIT_FAILED",
- 0x2b61: "ER_THREAD_POOL_INIT_FAILED",
- 0x2b62: "ER_THREAD_POOL_PLUGIN_STARTED",
- 0x2b63: "ER_THREAD_POOL_CANNOT_SET_THREAD_SPECIFIC_DATA",
- 0x2b64: "ER_THREAD_POOL_FAILED_TO_CREATE_CONNECT_HANDLER_THD",
- 0x2b65: "ER_THREAD_POOL_FAILED_TO_CREATE_THD_AND_AUTH_CONN",
- 0x2b66: "ER_THREAD_POOL_FAILED_PROCESS_CONNECT_EVENT",
- 0x2b67: "ER_THREAD_POOL_FAILED_TO_CREATE_POOL",
- 0x2b68: "ER_THREAD_POOL_RATE_LIMITED_ERROR_MSGS",
- 0x2b69: "ER_TRHEAD_POOL_LOW_LEVEL_INIT_FAILED",
- 0x2b6a: "ER_THREAD_POOL_LOW_LEVEL_REARM_FAILED",
- 0x2b6b: "ER_THREAD_POOL_BUFFER_TOO_SMALL",
- 0x2b6c: "ER_MECAB_NOT_SUPPORTED",
- 0x2b6d: "ER_MECAB_NOT_VERIFIED",
- 0x2b6e: "ER_MECAB_CREATING_MODEL",
- 0x2b6f: "ER_MECAB_FAILED_TO_CREATE_MODEL",
- 0x2b70: "ER_MECAB_FAILED_TO_CREATE_TRIGGER",
- 0x2b71: "ER_MECAB_UNSUPPORTED_CHARSET",
- 0x2b72: "ER_MECAB_CHARSET_LOADED",
- 0x2b73: "ER_MECAB_PARSE_FAILED",
- 0x2b74: "ER_MECAB_OOM_WHILE_PARSING_TEXT",
- 0x2b75: "ER_MECAB_CREATE_LATTICE_FAILED",
- 0x2b76: "ER_SEMISYNC_TRACE_ENTER_FUNC",
- 0x2b77: "ER_SEMISYNC_TRACE_EXIT_WITH_INT_EXIT_CODE",
- 0x2b78: "ER_SEMISYNC_TRACE_EXIT_WITH_BOOL_EXIT_CODE",
- 0x2b79: "ER_SEMISYNC_TRACE_EXIT",
- 0x2b7a: "ER_SEMISYNC_RPL_INIT_FOR_TRX",
- 0x2b7b: "ER_SEMISYNC_FAILED_TO_ALLOCATE_TRX_NODE",
- 0x2b7c: "ER_SEMISYNC_BINLOG_WRITE_OUT_OF_ORDER",
- 0x2b7d: "ER_SEMISYNC_INSERT_LOG_INFO_IN_ENTRY",
- 0x2b7e: "ER_SEMISYNC_PROBE_LOG_INFO_IN_ENTRY",
- 0x2b7f: "ER_SEMISYNC_CLEARED_ALL_ACTIVE_TRANSACTION_NODES",
- 0x2b80: "ER_SEMISYNC_CLEARED_ACTIVE_TRANSACTION_TILL_POS",
- 0x2b81: "ER_SEMISYNC_REPLY_MAGIC_NO_ERROR",
- 0x2b82: "ER_SEMISYNC_REPLY_PKT_LENGTH_TOO_SMALL",
- 0x2b83: "ER_SEMISYNC_REPLY_BINLOG_FILE_TOO_LARGE",
- 0x2b84: "ER_SEMISYNC_SERVER_REPLY",
- 0x2b85: "ER_SEMISYNC_FUNCTION_CALLED_TWICE",
- 0x2b86: "ER_SEMISYNC_RPL_ENABLED_ON_MASTER",
- 0x2b87: "ER_SEMISYNC_MASTER_OOM",
- 0x2b88: "ER_SEMISYNC_DISABLED_ON_MASTER",
- 0x2b89: "ER_SEMISYNC_FORCED_SHUTDOWN",
- 0x2b8a: "ER_SEMISYNC_MASTER_GOT_REPLY_AT_POS",
- 0x2b8b: "ER_SEMISYNC_MASTER_SIGNAL_ALL_WAITING_THREADS",
- 0x2b8c: "ER_SEMISYNC_MASTER_TRX_WAIT_POS",
- 0x2b8d: "ER_SEMISYNC_BINLOG_REPLY_IS_AHEAD",
- 0x2b8e: "ER_SEMISYNC_MOVE_BACK_WAIT_POS",
- 0x2b8f: "ER_SEMISYNC_INIT_WAIT_POS",
- 0x2b90: "ER_SEMISYNC_WAIT_TIME_FOR_BINLOG_SENT",
- 0x2b91: "ER_SEMISYNC_WAIT_FOR_BINLOG_TIMEDOUT",
- 0x2b92: "ER_SEMISYNC_WAIT_TIME_ASSESSMENT_FOR_COMMIT_TRX_FAILED",
- 0x2b93: "ER_SEMISYNC_RPL_SWITCHED_OFF",
- 0x2b94: "ER_SEMISYNC_RPL_SWITCHED_ON",
- 0x2b95: "ER_SEMISYNC_NO_SPACE_IN_THE_PKT",
- 0x2b96: "ER_SEMISYNC_SYNC_HEADER_UPDATE_INFO",
- 0x2b97: "ER_SEMISYNC_FAILED_TO_INSERT_TRX_NODE",
- 0x2b98: "ER_SEMISYNC_TRX_SKIPPED_AT_POS",
- 0x2b99: "ER_SEMISYNC_MASTER_FAILED_ON_NET_FLUSH",
- 0x2b9a: "ER_SEMISYNC_RECEIVED_ACK_IS_SMALLER",
- 0x2b9b: "ER_SEMISYNC_ADD_ACK_TO_SLOT",
- 0x2b9c: "ER_SEMISYNC_UPDATE_EXISTING_SLAVE_ACK",
- 0x2b9d: "ER_SEMISYNC_FAILED_TO_START_ACK_RECEIVER_THD",
- 0x2b9e: "ER_SEMISYNC_STARTING_ACK_RECEIVER_THD",
- 0x2b9f: "ER_SEMISYNC_FAILED_TO_WAIT_ON_DUMP_SOCKET",
- 0x2ba0: "ER_SEMISYNC_STOPPING_ACK_RECEIVER_THREAD",
- 0x2ba1: "ER_SEMISYNC_FAILED_REGISTER_SLAVE_TO_RECEIVER",
- 0x2ba2: "ER_SEMISYNC_START_BINLOG_DUMP_TO_SLAVE",
- 0x2ba3: "ER_SEMISYNC_STOP_BINLOG_DUMP_TO_SLAVE",
- 0x2ba4: "ER_SEMISYNC_UNREGISTER_TRX_OBSERVER_FAILED",
- 0x2ba5: "ER_SEMISYNC_UNREGISTER_BINLOG_STORAGE_OBSERVER_FAILED",
- 0x2ba6: "ER_SEMISYNC_UNREGISTER_BINLOG_TRANSMIT_OBSERVER_FAILED",
- 0x2ba7: "ER_SEMISYNC_UNREGISTERED_REPLICATOR",
- 0x2ba8: "ER_SEMISYNC_SOCKET_FD_TOO_LARGE",
- 0x2ba9: "ER_SEMISYNC_SLAVE_REPLY",
- 0x2baa: "ER_SEMISYNC_MISSING_MAGIC_NO_FOR_SEMISYNC_PKT",
- 0x2bab: "ER_SEMISYNC_SLAVE_START",
- 0x2bac: "ER_SEMISYNC_SLAVE_REPLY_WITH_BINLOG_INFO",
- 0x2bad: "ER_SEMISYNC_SLAVE_NET_FLUSH_REPLY_FAILED",
- 0x2bae: "ER_SEMISYNC_SLAVE_SEND_REPLY_FAILED",
- 0x2baf: "ER_SEMISYNC_EXECUTION_FAILED_ON_MASTER",
- 0x2bb0: "ER_SEMISYNC_NOT_SUPPORTED_BY_MASTER",
- 0x2bb1: "ER_SEMISYNC_SLAVE_SET_FAILED",
- 0x2bb2: "ER_SEMISYNC_FAILED_TO_STOP_ACK_RECEIVER_THD",
- 0x2bb3: "ER_FIREWALL_FAILED_TO_READ_FIREWALL_TABLES",
- 0x2bb4: "ER_FIREWALL_FAILED_TO_REG_DYNAMIC_PRIVILEGES",
- 0x2bb5: "ER_FIREWALL_RECORDING_STMT_WAS_TRUNCATED",
- 0x2bb6: "ER_FIREWALL_RECORDING_STMT_WITHOUT_TEXT",
- 0x2bb7: "ER_FIREWALL_SUSPICIOUS_STMT",
- 0x2bb8: "ER_FIREWALL_ACCESS_DENIED",
- 0x2bb9: "ER_FIREWALL_SKIPPED_UNKNOWN_USER_MODE",
- 0x2bba: "ER_FIREWALL_RELOADING_CACHE",
- 0x2bbb: "ER_FIREWALL_RESET_FOR_USER",
- 0x2bbc: "ER_FIREWALL_STATUS_FLUSHED",
- 0x2bbd: "ER_KEYRING_LOGGER_ERROR_MSG",
- 0x2bbe: "ER_AUDIT_LOG_FILTER_IS_NOT_INSTALLED",
- 0x2bbf: "ER_AUDIT_LOG_SWITCHING_TO_INCLUDE_LIST",
- 0x2bc0: "ER_AUDIT_LOG_CANNOT_SET_LOG_POLICY_WITH_OTHER_POLICIES",
- 0x2bc1: "ER_AUDIT_LOG_ONLY_INCLUDE_LIST_USED",
- 0x2bc2: "ER_AUDIT_LOG_INDEX_MAP_CANNOT_ACCESS_DIR",
- 0x2bc3: "ER_AUDIT_LOG_WRITER_RENAME_FILE_FAILED",
- 0x2bc4: "ER_AUDIT_LOG_WRITER_DEST_FILE_ALREADY_EXISTS",
- 0x2bc5: "ER_AUDIT_LOG_WRITER_RENAME_FILE_FAILED_REMOVE_FILE_MANUALLY",
- 0x2bc6: "ER_AUDIT_LOG_WRITER_INCOMPLETE_FILE_RENAMED",
- 0x2bc7: "ER_AUDIT_LOG_WRITER_FAILED_TO_WRITE_TO_FILE",
- 0x2bc8: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_INIT_ENCRYPTION",
- 0x2bc9: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_INIT_COMPRESSION",
- 0x2bca: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_CREATE_FILE",
- 0x2bcb: "ER_AUDIT_LOG_RENAME_LOG_FILE_BEFORE_FLUSH",
- 0x2bcc: "ER_AUDIT_LOG_FILTER_RESULT_MSG",
- 0x2bcd: "ER_AUDIT_LOG_JSON_READER_FAILED_TO_PARSE",
- 0x2bce: "ER_AUDIT_LOG_JSON_READER_BUF_TOO_SMALL",
- 0x2bcf: "ER_AUDIT_LOG_JSON_READER_FAILED_TO_OPEN_FILE",
- 0x2bd0: "ER_AUDIT_LOG_JSON_READER_FILE_PARSING_ERROR",
- 0x2bd1: "ER_AUDIT_LOG_FILTER_INVALID_COLUMN_COUNT",
- 0x2bd2: "ER_AUDIT_LOG_FILTER_INVALID_COLUMN_DEFINITION",
- 0x2bd3: "ER_AUDIT_LOG_FILTER_FAILED_TO_STORE_TABLE_FLDS",
- 0x2bd4: "ER_AUDIT_LOG_FILTER_FAILED_TO_UPDATE_TABLE",
- 0x2bd5: "ER_AUDIT_LOG_FILTER_FAILED_TO_INSERT_INTO_TABLE",
- 0x2bd6: "ER_AUDIT_LOG_FILTER_FAILED_TO_DELETE_FROM_TABLE",
- 0x2bd7: "ER_AUDIT_LOG_FILTER_FAILED_TO_INIT_TABLE_FOR_READ",
- 0x2bd8: "ER_AUDIT_LOG_FILTER_FAILED_TO_READ_TABLE",
- 0x2bd9: "ER_AUDIT_LOG_FILTER_FAILED_TO_CLOSE_TABLE_AFTER_READING",
- 0x2bda: "ER_AUDIT_LOG_FILTER_USER_AND_HOST_CANNOT_BE_EMPTY",
- 0x2bdb: "ER_AUDIT_LOG_FILTER_FLD_FILTERNAME_CANNOT_BE_EMPTY",
- 0x2bdc: "ER_VALIDATE_PWD_DICT_FILE_NOT_SPECIFIED",
- 0x2bdd: "ER_VALIDATE_PWD_DICT_FILE_NOT_LOADED",
- 0x2bde: "ER_VALIDATE_PWD_DICT_FILE_TOO_BIG",
- 0x2bdf: "ER_VALIDATE_PWD_FAILED_TO_READ_DICT_FILE",
- 0x2be0: "ER_VALIDATE_PWD_FAILED_TO_GET_FLD_FROM_SECURITY_CTX",
- 0x2be1: "ER_VALIDATE_PWD_FAILED_TO_GET_SECURITY_CTX",
- 0x2be2: "ER_VALIDATE_PWD_LENGTH_CHANGED",
- 0x2be3: "ER_REWRITER_QUERY_ERROR_MSG",
- 0x2be4: "ER_REWRITER_QUERY_FAILED",
- 0x2be5: "ER_XPLUGIN_STARTUP_FAILED",
- 0x2be6: "ER_XPLUGIN_SERVER_EXITING",
- 0x2be7: "ER_XPLUGIN_SERVER_EXITED",
- 0x2be8: "ER_XPLUGIN_USING_SSL_CONF_FROM_SERVER",
- 0x2be9: "ER_XPLUGIN_USING_SSL_CONF_FROM_MYSQLX",
- 0x2bea: "ER_XPLUGIN_FAILED_TO_USE_SSL_CONF",
- 0x2beb: "ER_XPLUGIN_USING_SSL_FOR_TLS_CONNECTION",
- 0x2bec: "ER_XPLUGIN_REFERENCE_TO_SECURE_CONN_WITH_XPLUGIN",
- 0x2bed: "ER_XPLUGIN_ERROR_MSG",
- 0x2bee: "ER_SHA_PWD_FAILED_TO_PARSE_AUTH_STRING",
- 0x2bef: "ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH",
- 0x2bf0: "ER_SHA_PWD_AUTH_REQUIRES_RSA_OR_SSL",
- 0x2bf1: "ER_SHA_PWD_RSA_KEY_TOO_LONG",
- 0x2bf2: "ER_PLUGIN_COMMON_FAILED_TO_OPEN_FILTER_TABLES",
- 0x2bf3: "ER_PLUGIN_COMMON_FAILED_TO_OPEN_TABLE",
- 0x2bf4: "ER_AUTH_LDAP_ERROR_LOGGER_ERROR_MSG",
- 0x2bf5: "ER_CONN_CONTROL_ERROR_MSG",
- 0x2bf6: "ER_GRP_RPL_ERROR_MSG",
- 0x2bf7: "ER_SHA_PWD_SALT_FOR_USER_CORRUPT",
- 0x2bf8: "ER_SYS_VAR_COMPONENT_OOM",
- 0x2bf9: "ER_SYS_VAR_COMPONENT_VARIABLE_SET_READ_ONLY",
- 0x2bfa: "ER_SYS_VAR_COMPONENT_UNKNOWN_VARIABLE_TYPE",
- 0x2bfb: "ER_SYS_VAR_COMPONENT_FAILED_TO_PARSE_VARIABLE_OPTIONS",
- 0x2bfc: "ER_SYS_VAR_COMPONENT_FAILED_TO_MAKE_VARIABLE_PERSISTENT",
- 0x2bfd: "ER_COMPONENT_FILTER_CONFUSED",
- 0x2bfe: "ER_STOP_SLAVE_IO_THREAD_DISK_SPACE",
- 0x2bff: "ER_LOG_FILE_CANNOT_OPEN",
- 0x2c04: "ER_PERSIST_OPTION_STATUS",
- 0x2c05: "ER_NOT_IMPLEMENTED_GET_TABLESPACE_STATISTICS",
- 0x2c08: "ER_SSL_FIPS_MODE_ERROR",
- 0x2c09: "ER_CONN_INIT_CONNECT_IGNORED",
- 0x2c0a: "ER_UNSUPPORTED_SQL_MODE",
- 0x2c0b: "ER_REWRITER_OOM",
- 0x2c0c: "ER_REWRITER_TABLE_MALFORMED_ERROR",
- 0x2c0d: "ER_REWRITER_LOAD_FAILED",
- 0x2c0e: "ER_REWRITER_READ_FAILED",
- 0x2c0f: "ER_CONN_CONTROL_EVENT_COORDINATOR_INIT_FAILED",
- 0x2c10: "ER_CONN_CONTROL_STAT_CONN_DELAY_TRIGGERED_UPDATE_FAILED",
- 0x2c11: "ER_CONN_CONTROL_STAT_CONN_DELAY_TRIGGERED_RESET_FAILED",
- 0x2c12: "ER_CONN_CONTROL_INVALID_CONN_DELAY_TYPE",
- 0x2c13: "ER_CONN_CONTROL_DELAY_ACTION_INIT_FAILED",
- 0x2c14: "ER_CONN_CONTROL_FAILED_TO_SET_CONN_DELAY",
- 0x2c15: "ER_CONN_CONTROL_FAILED_TO_UPDATE_CONN_DELAY_HASH",
- 0x2c16: "ER_XPLUGIN_FORCE_STOP_CLIENT",
- 0x2c17: "ER_XPLUGIN_MAX_AUTH_ATTEMPTS_REACHED",
- 0x2c18: "ER_XPLUGIN_BUFFER_PAGE_ALLOC_FAILED",
- 0x2c19: "ER_XPLUGIN_DETECTED_HANGING_CLIENTS",
- 0x2c1a: "ER_XPLUGIN_FAILED_TO_ACCEPT_CLIENT",
- 0x2c1b: "ER_XPLUGIN_FAILED_TO_SCHEDULE_CLIENT",
- 0x2c1c: "ER_XPLUGIN_FAILED_TO_PREPARE_IO_INTERFACES",
- 0x2c1d: "ER_XPLUGIN_SRV_SESSION_INIT_THREAD_FAILED",
- 0x2c1e: "ER_XPLUGIN_UNABLE_TO_USE_USER_SESSION_ACCOUNT",
- 0x2c1f: "ER_XPLUGIN_REFERENCE_TO_USER_ACCOUNT_DOC_SECTION",
- 0x2c20: "ER_XPLUGIN_UNEXPECTED_EXCEPTION_DISPATCHING_CMD",
- 0x2c21: "ER_XPLUGIN_EXCEPTION_IN_TASK_SCHEDULER",
- 0x2c22: "ER_XPLUGIN_TASK_SCHEDULING_FAILED",
- 0x2c23: "ER_XPLUGIN_EXCEPTION_IN_EVENT_LOOP",
- 0x2c24: "ER_XPLUGIN_LISTENER_SETUP_FAILED",
- 0x2c25: "ER_XPLUING_NET_STARTUP_FAILED",
- 0x2c26: "ER_XPLUGIN_FAILED_AT_SSL_CONF",
- 0x2c27: "ER_XPLUGIN_CLIENT_SSL_HANDSHAKE_FAILED",
- 0x2c28: "ER_XPLUGIN_SSL_HANDSHAKE_WITH_SERVER_FAILED",
- 0x2c29: "ER_XPLUGIN_FAILED_TO_CREATE_SESSION_FOR_CONN",
- 0x2c2a: "ER_XPLUGIN_FAILED_TO_INITIALIZE_SESSION",
- 0x2c2b: "ER_XPLUGIN_MESSAGE_TOO_LONG",
- 0x2c2c: "ER_XPLUGIN_UNINITIALIZED_MESSAGE",
- 0x2c2d: "ER_XPLUGIN_FAILED_TO_SET_MIN_NUMBER_OF_WORKERS",
- 0x2c2e: "ER_XPLUGIN_UNABLE_TO_ACCEPT_CONNECTION",
- 0x2c2f: "ER_XPLUGIN_ALL_IO_INTERFACES_DISABLED",
- 0x2c30: "ER_XPLUGIN_INVALID_MSG_DURING_CLIENT_INIT",
- 0x2c31: "ER_XPLUGIN_CLOSING_CLIENTS_ON_SHUTDOWN",
- 0x2c32: "ER_XPLUGIN_ERROR_READING_SOCKET",
- 0x2c33: "ER_XPLUGIN_PEER_DISCONNECTED_WHILE_READING_MSG_BODY",
- 0x2c34: "ER_XPLUGIN_READ_FAILED_CLOSING_CONNECTION",
- 0x2c35: "ER_XPLUGIN_INVALID_AUTH_METHOD",
- 0x2c36: "ER_XPLUGIN_UNEXPECTED_MSG_DURING_AUTHENTICATION",
- 0x2c37: "ER_XPLUGIN_ERROR_WRITING_TO_CLIENT",
- 0x2c38: "ER_XPLUGIN_SCHEDULER_STARTED",
- 0x2c39: "ER_XPLUGIN_SCHEDULER_STOPPED",
- 0x2c3a: "ER_XPLUGIN_LISTENER_SYS_VARIABLE_ERROR",
- 0x2c3b: "ER_XPLUGIN_LISTENER_STATUS_MSG",
- 0x2c3c: "ER_XPLUGIN_RETRYING_BIND_ON_PORT",
- 0x2c3d: "ER_XPLUGIN_SHUTDOWN_TRIGGERED",
- 0x2c3e: "ER_XPLUGIN_USER_ACCOUNT_WITH_ALL_PERMISSIONS",
- 0x2c3f: "ER_XPLUGIN_EXISTING_USER_ACCOUNT_WITH_INCOMPLETE_GRANTS",
- 0x2c40: "ER_XPLUGIN_SERVER_STARTS_HANDLING_CONNECTIONS",
- 0x2c41: "ER_XPLUGIN_SERVER_STOPPED_HANDLING_CONNECTIONS",
- 0x2c42: "ER_XPLUGIN_FAILED_TO_INTERRUPT_SESSION",
- 0x2c43: "ER_XPLUGIN_CLIENT_RELEASE_TRIGGERED",
- 0x2c44: "ER_XPLUGIN_IPv6_AVAILABLE",
- 0x2c45: "ER_XPLUGIN_UNIX_SOCKET_NOT_CONFIGURED",
- 0x2c46: "ER_XPLUGIN_CLIENT_KILL_MSG",
- 0x2c47: "ER_XPLUGIN_FAILED_TO_GET_SECURITY_CTX",
- 0x2c48: "ER_XPLUGIN_FAILED_TO_SWITCH_SECURITY_CTX_TO_ROOT",
- 0x2c49: "ER_XPLUGIN_FAILED_TO_CLOSE_SQL_SESSION",
- 0x2c4a: "ER_XPLUGIN_FAILED_TO_EXECUTE_ADMIN_CMD",
- 0x2c4b: "ER_XPLUGIN_EMPTY_ADMIN_CMD",
- 0x2c4c: "ER_XPLUGIN_FAILED_TO_GET_SYS_VAR",
- 0x2c4d: "ER_XPLUGIN_FAILED_TO_GET_CREATION_STMT",
- 0x2c4e: "ER_XPLUGIN_FAILED_TO_GET_ENGINE_INFO",
- 0x2c4f: "ER_XPLUGIN_FAIL_TO_GET_RESULT_DATA",
- 0x2c50: "ER_XPLUGIN_CAPABILITY_EXPIRED_PASSWORD",
- 0x2c51: "ER_XPLUGIN_FAILED_TO_SET_SO_REUSEADDR_FLAG",
- 0x2c52: "ER_XPLUGIN_FAILED_TO_OPEN_INTERNAL_SESSION",
- 0x2c53: "ER_XPLUGIN_FAILED_TO_SWITCH_CONTEXT",
- 0x2c54: "ER_XPLUGIN_FAILED_TO_UNREGISTER_UDF",
- 0x2c55: "ER_XPLUGIN_GET_PEER_ADDRESS_FAILED",
- 0x2c56: "ER_XPLUGIN_CAPABILITY_CLIENT_INTERACTIVE_FAILED",
- 0x2c57: "ER_XPLUGIN_FAILED_TO_RESET_IPV6_V6ONLY_FLAG",
- 0x2c58: "ER_KEYRING_INVALID_KEY_TYPE",
- 0x2c59: "ER_KEYRING_INVALID_KEY_LENGTH",
- 0x2c5a: "ER_KEYRING_FAILED_TO_CREATE_KEYRING_DIR",
- 0x2c5b: "ER_KEYRING_FILE_INIT_FAILED",
- 0x2c5c: "ER_KEYRING_INTERNAL_EXCEPTION_FAILED_FILE_INIT",
- 0x2c5d: "ER_KEYRING_FAILED_TO_GENERATE_KEY",
- 0x2c5e: "ER_KEYRING_CHECK_KEY_FAILED_DUE_TO_INVALID_KEY",
- 0x2c5f: "ER_KEYRING_CHECK_KEY_FAILED_DUE_TO_EMPTY_KEY_ID",
- 0x2c60: "ER_KEYRING_OPERATION_FAILED_DUE_TO_INTERNAL_ERROR",
- 0x2c61: "ER_KEYRING_INCORRECT_FILE",
- 0x2c62: "ER_KEYRING_FOUND_MALFORMED_BACKUP_FILE",
- 0x2c63: "ER_KEYRING_FAILED_TO_RESTORE_FROM_BACKUP_FILE",
- 0x2c64: "ER_KEYRING_FAILED_TO_FLUSH_KEYRING_TO_FILE",
- 0x2c65: "ER_KEYRING_FAILED_TO_GET_FILE_STAT",
- 0x2c66: "ER_KEYRING_FAILED_TO_REMOVE_FILE",
- 0x2c67: "ER_KEYRING_FAILED_TO_TRUNCATE_FILE",
- 0x2c68: "ER_KEYRING_UNKNOWN_ERROR",
- 0x2c69: "ER_KEYRING_FAILED_TO_SET_KEYRING_FILE_DATA",
- 0x2c6a: "ER_KEYRING_FILE_IO_ERROR",
- 0x2c6b: "ER_KEYRING_FAILED_TO_LOAD_KEYRING_CONTENT",
- 0x2c6c: "ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING",
- 0x2c6d: "ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING_BACKUP",
- 0x2c6e: "ER_KEYRING_KEY_FETCH_FAILED_DUE_TO_EMPTY_KEY_ID",
- 0x2c6f: "ER_KEYRING_FAILED_TO_REMOVE_KEY_DUE_TO_EMPTY_ID",
- 0x2c70: "ER_KEYRING_OKV_INCORRECT_KEY_VAULT_CONFIGURED",
- 0x2c71: "ER_KEYRING_OKV_INIT_FAILED_DUE_TO_INCORRECT_CONF",
- 0x2c72: "ER_KEYRING_OKV_INIT_FAILED_DUE_TO_INTERNAL_ERROR",
- 0x2c73: "ER_KEYRING_OKV_INVALID_KEY_TYPE",
- 0x2c74: "ER_KEYRING_OKV_INVALID_KEY_LENGTH_FOR_CIPHER",
- 0x2c75: "ER_KEYRING_OKV_FAILED_TO_GENERATE_KEY_DUE_TO_INTERNAL_ERROR",
- 0x2c76: "ER_KEYRING_OKV_FAILED_TO_FIND_SERVER_ENTRY",
- 0x2c77: "ER_KEYRING_OKV_FAILED_TO_FIND_STANDBY_SERVER_ENTRY",
- 0x2c78: "ER_KEYRING_OKV_FAILED_TO_PARSE_CONF_FILE",
- 0x2c79: "ER_KEYRING_OKV_FAILED_TO_LOAD_KEY_UID",
- 0x2c7a: "ER_KEYRING_OKV_FAILED_TO_INIT_SSL_LAYER",
- 0x2c7b: "ER_KEYRING_OKV_FAILED_TO_INIT_CLIENT",
- 0x2c7c: "ER_KEYRING_OKV_CONNECTION_TO_SERVER_FAILED",
- 0x2c7d: "ER_KEYRING_OKV_FAILED_TO_REMOVE_KEY",
- 0x2c7e: "ER_KEYRING_OKV_FAILED_TO_ADD_ATTRIBUTE",
- 0x2c7f: "ER_KEYRING_OKV_FAILED_TO_GENERATE_KEY",
- 0x2c80: "ER_KEYRING_OKV_FAILED_TO_STORE_KEY",
- 0x2c81: "ER_KEYRING_OKV_FAILED_TO_ACTIVATE_KEYS",
- 0x2c82: "ER_KEYRING_OKV_FAILED_TO_FETCH_KEY",
- 0x2c83: "ER_KEYRING_OKV_FAILED_TO_STORE_OR_GENERATE_KEY",
- 0x2c84: "ER_KEYRING_OKV_FAILED_TO_RETRIEVE_KEY_SIGNATURE",
- 0x2c85: "ER_KEYRING_OKV_FAILED_TO_RETRIEVE_KEY",
- 0x2c86: "ER_KEYRING_OKV_FAILED_TO_LOAD_SSL_TRUST_STORE",
- 0x2c87: "ER_KEYRING_OKV_FAILED_TO_SET_CERTIFICATE_FILE",
- 0x2c88: "ER_KEYRING_OKV_FAILED_TO_SET_KEY_FILE",
- 0x2c89: "ER_KEYRING_OKV_KEY_MISMATCH",
- 0x2c8a: "ER_KEYRING_ENCRYPTED_FILE_INCORRECT_KEYRING_FILE",
- 0x2c8b: "ER_KEYRING_ENCRYPTED_FILE_DECRYPTION_FAILED",
- 0x2c8c: "ER_KEYRING_ENCRYPTED_FILE_FOUND_MALFORMED_BACKUP_FILE",
- 0x2c8d: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_RESTORE_KEYRING",
- 0x2c8e: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_FLUSH_KEYRING",
- 0x2c8f: "ER_KEYRING_ENCRYPTED_FILE_ENCRYPTION_FAILED",
- 0x2c90: "ER_KEYRING_ENCRYPTED_FILE_INVALID_KEYRING_DIR",
- 0x2c91: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_CREATE_KEYRING_DIR",
- 0x2c92: "ER_KEYRING_ENCRYPTED_FILE_PASSWORD_IS_INVALID",
- 0x2c93: "ER_KEYRING_ENCRYPTED_FILE_PASSWORD_IS_TOO_LONG",
- 0x2c94: "ER_KEYRING_ENCRYPTED_FILE_INIT_FAILURE",
- 0x2c95: "ER_KEYRING_ENCRYPTED_FILE_INIT_FAILED_DUE_TO_INTERNAL_ERROR",
- 0x2c96: "ER_KEYRING_ENCRYPTED_FILE_GEN_KEY_FAILED_DUE_TO_INTERNAL_ERROR",
- 0x2c97: "ER_KEYRING_AWS_FAILED_TO_SET_CMK_ID",
- 0x2c98: "ER_KEYRING_AWS_FAILED_TO_SET_REGION",
- 0x2c99: "ER_KEYRING_AWS_FAILED_TO_OPEN_CONF_FILE",
- 0x2c9a: "ER_KEYRING_AWS_FAILED_TO_ACCESS_KEY_ID_FROM_CONF_FILE",
- 0x2c9b: "ER_KEYRING_AWS_FAILED_TO_ACCESS_KEY_FROM_CONF_FILE",
- 0x2c9c: "ER_KEYRING_AWS_INVALID_CONF_FILE_PATH",
- 0x2c9d: "ER_KEYRING_AWS_INVALID_DATA_FILE_PATH",
- 0x2c9e: "ER_KEYRING_AWS_FAILED_TO_ACCESS_OR_CREATE_KEYRING_DIR",
- 0x2c9f: "ER_KEYRING_AWS_FAILED_TO_ACCESS_OR_CREATE_KEYRING_DATA_FILE",
- 0x2ca0: "ER_KEYRING_AWS_FAILED_TO_INIT_DUE_TO_INTERNAL_ERROR",
- 0x2ca1: "ER_KEYRING_AWS_FAILED_TO_ACCESS_DATA_FILE",
- 0x2ca2: "ER_KEYRING_AWS_CMK_ID_NOT_SET",
- 0x2ca3: "ER_KEYRING_AWS_FAILED_TO_GET_KMS_CREDENTIAL_FROM_CONF_FILE",
- 0x2ca4: "ER_KEYRING_AWS_INIT_FAILURE",
- 0x2ca5: "ER_KEYRING_AWS_FAILED_TO_INIT_DUE_TO_PLUGIN_INTERNAL_ERROR",
- 0x2ca6: "ER_KEYRING_AWS_INVALID_KEY_LENGTH_FOR_CIPHER",
- 0x2ca7: "ER_KEYRING_AWS_FAILED_TO_GENERATE_KEY_DUE_TO_INTERNAL_ERROR",
- 0x2ca8: "ER_KEYRING_AWS_INCORRECT_FILE",
- 0x2ca9: "ER_KEYRING_AWS_FOUND_MALFORMED_BACKUP_FILE",
- 0x2caa: "ER_KEYRING_AWS_FAILED_TO_RESTORE_FROM_BACKUP_FILE",
- 0x2cab: "ER_KEYRING_AWS_FAILED_TO_FLUSH_KEYRING_TO_FILE",
- 0x2cac: "ER_KEYRING_AWS_INCORRECT_REGION",
- 0x2cad: "ER_KEYRING_AWS_FAILED_TO_CONNECT_KMS",
- 0x2cae: "ER_KEYRING_AWS_FAILED_TO_GENERATE_NEW_KEY",
- 0x2caf: "ER_KEYRING_AWS_FAILED_TO_ENCRYPT_KEY",
- 0x2cb0: "ER_KEYRING_AWS_FAILED_TO_RE_ENCRYPT_KEY",
- 0x2cb1: "ER_KEYRING_AWS_FAILED_TO_DECRYPT_KEY",
- 0x2cb2: "ER_KEYRING_AWS_FAILED_TO_ROTATE_CMK",
- 0x2cb3: "ER_GRP_RPL_GTID_ALREADY_USED",
- 0x2cb4: "ER_GRP_RPL_APPLIER_THD_KILLED",
- 0x2cb5: "ER_GRP_RPL_EVENT_HANDLING_ERROR",
- 0x2cb6: "ER_GRP_RPL_ERROR_GTID_EXECUTION_INFO",
- 0x2cb7: "ER_GRP_RPL_CERTIFICATE_SIZE_ERROR",
- 0x2cb8: "ER_GRP_RPL_CREATE_APPLIER_CACHE_ERROR",
- 0x2cb9: "ER_GRP_RPL_UNBLOCK_WAITING_THD",
- 0x2cba: "ER_GRP_RPL_APPLIER_PIPELINE_NOT_DISPOSED",
- 0x2cbb: "ER_GRP_RPL_APPLIER_THD_EXECUTION_ABORTED",
- 0x2cbc: "ER_GRP_RPL_APPLIER_EXECUTION_FATAL_ERROR",
- 0x2cbd: "ER_GRP_RPL_ERROR_STOPPING_CHANNELS",
- 0x2cbe: "ER_GRP_RPL_ERROR_SENDING_SINGLE_PRIMARY_MSSG",
- 0x2cbf: "ER_GRP_RPL_UPDATE_TRANS_SNAPSHOT_VER_ERROR",
- 0x2cc0: "ER_GRP_RPL_SIDNO_FETCH_ERROR",
- 0x2cc1: "ER_GRP_RPL_BROADCAST_COMMIT_TRANS_MSSG_FAILED",
- 0x2cc2: "ER_GRP_RPL_GROUP_NAME_PARSE_ERROR",
- 0x2cc3: "ER_GRP_RPL_ADD_GRPSID_TO_GRPGTIDSID_MAP_ERROR",
- 0x2cc4: "ER_GRP_RPL_UPDATE_GRPGTID_EXECUTED_ERROR",
- 0x2cc5: "ER_GRP_RPL_DONOR_TRANS_INFO_ERROR",
- 0x2cc6: "ER_GRP_RPL_SERVER_CONN_ERROR",
- 0x2cc7: "ER_GRP_RPL_ERROR_FETCHING_GTID_EXECUTED_SET",
- 0x2cc8: "ER_GRP_RPL_ADD_GTID_TO_GRPGTID_EXECUTED_ERROR",
- 0x2cc9: "ER_GRP_RPL_ERROR_FETCHING_GTID_SET",
- 0x2cca: "ER_GRP_RPL_ADD_RETRIEVED_SET_TO_GRP_GTID_EXECUTED_ERROR",
- 0x2ccb: "ER_GRP_RPL_CERTIFICATION_INITIALIZATION_FAILURE",
- 0x2ccc: "ER_GRP_RPL_UPDATE_LAST_CONFLICT_FREE_TRANS_ERROR",
- 0x2ccd: "ER_GRP_RPL_UPDATE_TRANS_SNAPSHOT_REF_VER_ERROR",
- 0x2cce: "ER_GRP_RPL_FETCH_TRANS_SIDNO_ERROR",
- 0x2ccf: "ER_GRP_RPL_ERROR_VERIFYING_SIDNO",
- 0x2cd0: "ER_GRP_RPL_CANT_GENERATE_GTID",
- 0x2cd1: "ER_GRP_RPL_INVALID_GTID_SET",
- 0x2cd2: "ER_GRP_RPL_UPDATE_GTID_SET_ERROR",
- 0x2cd3: "ER_GRP_RPL_RECEIVED_SET_MISSING_GTIDS",
- 0x2cd4: "ER_GRP_RPL_SKIP_COMPUTATION_TRANS_COMMITTED",
- 0x2cd5: "ER_GRP_RPL_NULL_PACKET",
- 0x2cd6: "ER_GRP_RPL_CANT_READ_GTID",
- 0x2cd7: "ER_GRP_RPL_PROCESS_GTID_SET_ERROR",
- 0x2cd8: "ER_GRP_RPL_PROCESS_INTERSECTION_GTID_SET_ERROR",
- 0x2cd9: "ER_GRP_RPL_SET_STABLE_TRANS_ERROR",
- 0x2cda: "ER_GRP_RPL_CANT_READ_GRP_GTID_EXTRACTED",
- 0x2cdb: "ER_GRP_RPL_CANT_READ_WRITE_SET_ITEM",
- 0x2cdc: "ER_GRP_RPL_INIT_CERTIFICATION_INFO_FAILURE",
- 0x2cdd: "ER_GRP_RPL_CONFLICT_DETECTION_DISABLED",
- 0x2cde: "ER_GRP_RPL_MSG_DISCARDED",
- 0x2cdf: "ER_GRP_RPL_MISSING_GRP_RPL_APPLIER",
- 0x2ce0: "ER_GRP_RPL_CERTIFIER_MSSG_PROCESS_ERROR",
- 0x2ce1: "ER_GRP_RPL_SRV_NOT_ONLINE",
- 0x2ce2: "ER_GRP_RPL_SRV_ONLINE",
- 0x2ce3: "ER_GRP_RPL_DISABLE_SRV_READ_MODE_RESTRICTED",
- 0x2ce4: "ER_GRP_RPL_MEM_ONLINE",
- 0x2ce5: "ER_GRP_RPL_MEM_UNREACHABLE",
- 0x2ce6: "ER_GRP_RPL_MEM_REACHABLE",
- 0x2ce7: "ER_GRP_RPL_SRV_BLOCKED",
- 0x2ce8: "ER_GRP_RPL_SRV_BLOCKED_FOR_SECS",
- 0x2ce9: "ER_GRP_RPL_CHANGE_GRP_MEM_NOT_PROCESSED",
- 0x2cea: "ER_GRP_RPL_MEMBER_CONTACT_RESTORED",
- 0x2ceb: "ER_GRP_RPL_MEMBER_REMOVED",
- 0x2cec: "ER_GRP_RPL_PRIMARY_MEMBER_LEFT_GRP",
- 0x2ced: "ER_GRP_RPL_MEMBER_ADDED",
- 0x2cee: "ER_GRP_RPL_MEMBER_EXIT_PLUGIN_ERROR",
- 0x2cef: "ER_GRP_RPL_MEMBER_CHANGE",
- 0x2cf0: "ER_GRP_RPL_MEMBER_LEFT_GRP",
- 0x2cf1: "ER_GRP_RPL_MEMBER_EXPELLED",
- 0x2cf2: "ER_GRP_RPL_SESSION_OPEN_FAILED",
- 0x2cf3: "ER_GRP_RPL_NEW_PRIMARY_ELECTED",
- 0x2cf4: "ER_GRP_RPL_DISABLE_READ_ONLY_FAILED",
- 0x2cf5: "ER_GRP_RPL_ENABLE_READ_ONLY_FAILED",
- 0x2cf6: "ER_GRP_RPL_SRV_PRIMARY_MEM",
- 0x2cf7: "ER_GRP_RPL_SRV_SECONDARY_MEM",
- 0x2cf8: "ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM",
- 0x2cf9: "ER_GRP_RPL_SUPER_READ_ONLY_ACTIVATE_ERROR",
- 0x2cfa: "ER_GRP_RPL_EXCEEDS_AUTO_INC_VALUE",
- 0x2cfb: "ER_GRP_RPL_DATA_NOT_PROVIDED_BY_MEM",
- 0x2cfc: "ER_GRP_RPL_MEMBER_ALREADY_EXISTS",
- 0x2cfd: "ER_GRP_RPL_GRP_CHANGE_INFO_EXTRACT_ERROR",
- 0x2cfe: "ER_GRP_RPL_GTID_EXECUTED_EXTRACT_ERROR",
- 0x2cff: "ER_GRP_RPL_GTID_SET_EXTRACT_ERROR",
- 0x2d00: "ER_GRP_RPL_START_FAILED",
- 0x2d01: "ER_GRP_RPL_MEMBER_VER_INCOMPATIBLE",
- 0x2d02: "ER_GRP_RPL_TRANS_NOT_PRESENT_IN_GRP",
- 0x2d03: "ER_GRP_RPL_TRANS_GREATER_THAN_GRP",
- 0x2d04: "ER_GRP_RPL_MEMBER_VERSION_LOWER_THAN_GRP",
- 0x2d05: "ER_GRP_RPL_LOCAL_GTID_SETS_PROCESS_ERROR",
- 0x2d06: "ER_GRP_RPL_MEMBER_TRANS_GREATER_THAN_GRP",
- 0x2d07: "ER_GRP_RPL_BLOCK_SIZE_DIFF_FROM_GRP",
- 0x2d08: "ER_GRP_RPL_TRANS_WRITE_SET_EXTRACT_DIFF_FROM_GRP",
- 0x2d09: "ER_GRP_RPL_MEMBER_CFG_INCOMPATIBLE_WITH_GRP_CFG",
- 0x2d0a: "ER_GRP_RPL_MEMBER_STOP_RPL_CHANNELS_ERROR",
- 0x2d0b: "ER_GRP_RPL_PURGE_APPLIER_LOGS",
- 0x2d0c: "ER_GRP_RPL_RESET_APPLIER_MODULE_LOGS_ERROR",
- 0x2d0d: "ER_GRP_RPL_APPLIER_THD_SETUP_ERROR",
- 0x2d0e: "ER_GRP_RPL_APPLIER_THD_START_ERROR",
- 0x2d0f: "ER_GRP_RPL_APPLIER_THD_STOP_ERROR",
- 0x2d10: "ER_GRP_RPL_FETCH_TRANS_DATA_FAILED",
- 0x2d11: "ER_GRP_RPL_SLAVE_IO_THD_PRIMARY_UNKNOWN",
- 0x2d12: "ER_GRP_RPL_SALVE_IO_THD_ON_SECONDARY_MEMBER",
- 0x2d13: "ER_GRP_RPL_SLAVE_SQL_THD_PRIMARY_UNKNOWN",
- 0x2d14: "ER_GRP_RPL_SLAVE_SQL_THD_ON_SECONDARY_MEMBER",
- 0x2d15: "ER_GRP_RPL_NEEDS_INNODB_TABLE",
- 0x2d16: "ER_GRP_RPL_PRIMARY_KEY_NOT_DEFINED",
- 0x2d17: "ER_GRP_RPL_FK_WITH_CASCADE_UNSUPPORTED",
- 0x2d18: "ER_GRP_RPL_AUTO_INC_RESET",
- 0x2d19: "ER_GRP_RPL_AUTO_INC_OFFSET_RESET",
- 0x2d1a: "ER_GRP_RPL_AUTO_INC_SET",
- 0x2d1b: "ER_GRP_RPL_AUTO_INC_OFFSET_SET",
- 0x2d1c: "ER_GRP_RPL_FETCH_TRANS_CONTEXT_FAILED",
- 0x2d1d: "ER_GRP_RPL_FETCH_FORMAT_DESC_LOG_EVENT_FAILED",
- 0x2d1e: "ER_GRP_RPL_FETCH_TRANS_CONTEXT_LOG_EVENT_FAILED",
- 0x2d1f: "ER_GRP_RPL_FETCH_SNAPSHOT_VERSION_FAILED",
- 0x2d20: "ER_GRP_RPL_FETCH_GTID_LOG_EVENT_FAILED",
- 0x2d21: "ER_GRP_RPL_UPDATE_SERV_CERTIFICATE_FAILED",
- 0x2d22: "ER_GRP_RPL_ADD_GTID_INFO_WITH_LOCAL_GTID_FAILED",
- 0x2d23: "ER_GRP_RPL_ADD_GTID_INFO_WITHOUT_LOCAL_GTID_FAILED",
- 0x2d24: "ER_GRP_RPL_NOTIFY_CERTIFICATION_OUTCOME_FAILED",
- 0x2d25: "ER_GRP_RPL_ADD_GTID_INFO_WITH_REMOTE_GTID_FAILED",
- 0x2d26: "ER_GRP_RPL_ADD_GTID_INFO_WITHOUT_REMOTE_GTID_FAILED",
- 0x2d27: "ER_GRP_RPL_FETCH_VIEW_CHANGE_LOG_EVENT_FAILED",
- 0x2d28: "ER_GRP_RPL_CONTACT_WITH_SRV_FAILED",
- 0x2d29: "ER_GRP_RPL_SRV_WAIT_TIME_OUT",
- 0x2d2a: "ER_GRP_RPL_FETCH_LOG_EVENT_FAILED",
- 0x2d2b: "ER_GRP_RPL_START_GRP_RPL_FAILED",
- 0x2d2c: "ER_GRP_RPL_CONN_INTERNAL_PLUGIN_FAIL",
- 0x2d2d: "ER_GRP_RPL_SUPER_READ_ON",
- 0x2d2e: "ER_GRP_RPL_SUPER_READ_OFF",
- 0x2d2f: "ER_GRP_RPL_KILLED_SESSION_ID",
- 0x2d30: "ER_GRP_RPL_KILLED_FAILED_ID",
- 0x2d31: "ER_GRP_RPL_INTERNAL_QUERY",
- 0x2d32: "ER_GRP_RPL_COPY_FROM_EMPTY_STRING",
- 0x2d33: "ER_GRP_RPL_QUERY_FAIL",
- 0x2d34: "ER_GRP_RPL_CREATE_SESSION_UNABLE",
- 0x2d35: "ER_GRP_RPL_MEMBER_NOT_FOUND",
- 0x2d36: "ER_GRP_RPL_MAXIMUM_CONNECTION_RETRIES_REACHED",
- 0x2d37: "ER_GRP_RPL_ALL_DONORS_LEFT_ABORT_RECOVERY",
- 0x2d38: "ER_GRP_RPL_ESTABLISH_RECOVERY_WITH_DONOR",
- 0x2d39: "ER_GRP_RPL_ESTABLISH_RECOVERY_WITH_ANOTHER_DONOR",
- 0x2d3a: "ER_GRP_RPL_NO_VALID_DONOR",
- 0x2d3b: "ER_GRP_RPL_CONFIG_RECOVERY",
- 0x2d3c: "ER_GRP_RPL_ESTABLISHING_CONN_GRP_REC_DONOR",
- 0x2d3d: "ER_GRP_RPL_CREATE_GRP_RPL_REC_CHANNEL",
- 0x2d3e: "ER_GRP_RPL_DONOR_SERVER_CONN",
- 0x2d3f: "ER_GRP_RPL_CHECK_STATUS_TABLE",
- 0x2d40: "ER_GRP_RPL_STARTING_GRP_REC",
- 0x2d41: "ER_GRP_RPL_DONOR_CONN_TERMINATION",
- 0x2d42: "ER_GRP_RPL_STOPPING_GRP_REC",
- 0x2d43: "ER_GRP_RPL_PURGE_REC",
- 0x2d44: "ER_GRP_RPL_UNABLE_TO_KILL_CONN_REC_DONOR_APPLIER",
- 0x2d45: "ER_GRP_RPL_UNABLE_TO_KILL_CONN_REC_DONOR_FAILOVER",
- 0x2d46: "ER_GRP_RPL_FAILED_TO_NOTIFY_GRP_MEMBERSHIP_EVENT",
- 0x2d47: "ER_GRP_RPL_FAILED_TO_BROADCAST_GRP_MEMBERSHIP_NOTIFICATION",
- 0x2d48: "ER_GRP_RPL_FAILED_TO_BROADCAST_MEMBER_STATUS_NOTIFICATION",
- 0x2d49: "ER_GRP_RPL_OOM_FAILED_TO_GENERATE_IDENTIFICATION_HASH",
- 0x2d4a: "ER_GRP_RPL_WRITE_IDENT_HASH_BASE64_ENCODING_FAILED",
- 0x2d4b: "ER_GRP_RPL_INVALID_BINLOG_FORMAT",
- 0x2d4c: "ER_GRP_RPL_BINLOG_CHECKSUM_SET",
- 0x2d4d: "ER_GRP_RPL_TRANS_WRITE_SET_EXTRACTION_NOT_SET",
- 0x2d4e: "ER_GRP_RPL_UNSUPPORTED_TRANS_ISOLATION",
- 0x2d4f: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_WHILE_STOPPING",
- 0x2d50: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_WHILE_RECOVERING",
- 0x2d51: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_IN_ERROR_STATE",
- 0x2d52: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_IN_OFFLINE_MODE",
- 0x2d53: "ER_GRP_RPL_MULTIPLE_CACHE_TYPE_NOT_SUPPORTED_FOR_SESSION",
- 0x2d54: "ER_GRP_RPL_FAILED_TO_REINIT_BINLOG_CACHE_FOR_READ",
- 0x2d55: "ER_GRP_RPL_FAILED_TO_CREATE_TRANS_CONTEXT",
- 0x2d56: "ER_GRP_RPL_FAILED_TO_EXTRACT_TRANS_WRITE_SET",
- 0x2d57: "ER_GRP_RPL_FAILED_TO_GATHER_TRANS_WRITE_SET",
- 0x2d58: "ER_GRP_RPL_TRANS_SIZE_EXCEEDS_LIMIT",
- 0x2d59: "ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_READ_FAILED",
- 0x2d5a: "ER_GRP_RPL_APPENDING_DATA_TO_INTERNAL_CACHE_FAILED",
- 0x2d5b: "ER_GRP_RPL_WRITE_TO_BINLOG_CACHE_FAILED",
- 0x2d5c: "ER_GRP_RPL_FAILED_TO_REGISTER_TRANS_OUTCOME_NOTIFICTION",
- 0x2d5d: "ER_GRP_RPL_MSG_TOO_LONG_BROADCASTING_TRANS_FAILED",
- 0x2d5e: "ER_GRP_RPL_BROADCASTING_TRANS_TO_GRP_FAILED",
- 0x2d5f: "ER_GRP_RPL_ERROR_WHILE_WAITING_FOR_CONFLICT_DETECTION",
- 0x2d60: "ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_WRITE_FAILED",
- 0x2d61: "ER_GRP_RPL_FAILED_TO_CREATE_COMMIT_CACHE",
- 0x2d62: "ER_GRP_RPL_REINIT_OF_COMMIT_CACHE_FOR_WRITE_FAILED",
- 0x2d63: "ER_GRP_RPL_PREV_REC_SESSION_RUNNING",
- 0x2d64: "ER_GRP_RPL_FATAL_REC_PROCESS",
- 0x2d65: "ER_GRP_RPL_WHILE_STOPPING_REP_CHANNEL",
- 0x2d66: "ER_GRP_RPL_UNABLE_TO_EVALUATE_APPLIER_STATUS",
- 0x2d67: "ER_GRP_RPL_ONLY_ONE_SERVER_ALIVE",
- 0x2d68: "ER_GRP_RPL_CERTIFICATION_REC_PROCESS",
- 0x2d69: "ER_GRP_RPL_UNABLE_TO_ENSURE_EXECUTION_REC",
- 0x2d6a: "ER_GRP_RPL_WHILE_SENDING_MSG_REC",
- 0x2d6b: "ER_GRP_RPL_READ_UNABLE_FOR_SUPER_READ_ONLY",
- 0x2d6c: "ER_GRP_RPL_READ_UNABLE_FOR_READ_ONLY_SUPER_READ_ONLY",
- 0x2d6d: "ER_GRP_RPL_UNABLE_TO_RESET_SERVER_READ_MODE",
- 0x2d6e: "ER_GRP_RPL_UNABLE_TO_CERTIFY_PLUGIN_TRANS",
- 0x2d6f: "ER_GRP_RPL_UNBLOCK_CERTIFIED_TRANS",
- 0x2d70: "ER_GRP_RPL_SERVER_WORKING_AS_SECONDARY",
- 0x2d71: "ER_GRP_RPL_FAILED_TO_START_WITH_INVALID_SERVER_ID",
- 0x2d72: "ER_GRP_RPL_FORCE_MEMBERS_MUST_BE_EMPTY",
- 0x2d73: "ER_GRP_RPL_PLUGIN_STRUCT_INIT_NOT_POSSIBLE_ON_SERVER_START",
- 0x2d74: "ER_GRP_RPL_FAILED_TO_ENABLE_SUPER_READ_ONLY_MODE",
- 0x2d75: "ER_GRP_RPL_FAILED_TO_INIT_COMMUNICATION_ENGINE",
- 0x2d76: "ER_GRP_RPL_FAILED_TO_START_ON_SECONDARY_WITH_ASYNC_CHANNELS",
- 0x2d77: "ER_GRP_RPL_FAILED_TO_START_COMMUNICATION_ENGINE",
- 0x2d78: "ER_GRP_RPL_TIMEOUT_ON_VIEW_AFTER_JOINING_GRP",
- 0x2d79: "ER_GRP_RPL_FAILED_TO_CALL_GRP_COMMUNICATION_INTERFACE",
- 0x2d7a: "ER_GRP_RPL_MEMBER_SERVER_UUID_IS_INCOMPATIBLE_WITH_GRP",
- 0x2d7b: "ER_GRP_RPL_MEMBER_CONF_INFO",
- 0x2d7c: "ER_GRP_RPL_FAILED_TO_CONFIRM_IF_SERVER_LEFT_GRP",
- 0x2d7d: "ER_GRP_RPL_SERVER_IS_ALREADY_LEAVING",
- 0x2d7e: "ER_GRP_RPL_SERVER_ALREADY_LEFT",
- 0x2d7f: "ER_GRP_RPL_WAITING_FOR_VIEW_UPDATE",
- 0x2d80: "ER_GRP_RPL_TIMEOUT_RECEIVING_VIEW_CHANGE_ON_SHUTDOWN",
- 0x2d81: "ER_GRP_RPL_REQUESTING_NON_MEMBER_SERVER_TO_LEAVE",
- 0x2d82: "ER_GRP_RPL_IS_STOPPING",
- 0x2d83: "ER_GRP_RPL_IS_STOPPED",
- 0x2d84: "ER_GRP_RPL_FAILED_TO_ENABLE_READ_ONLY_MODE_ON_SHUTDOWN",
- 0x2d85: "ER_GRP_RPL_RECOVERY_MODULE_TERMINATION_TIMED_OUT_ON_SHUTDOWN",
- 0x2d86: "ER_GRP_RPL_APPLIER_TERMINATION_TIMED_OUT_ON_SHUTDOWN",
- 0x2d87: "ER_GRP_RPL_FAILED_TO_SHUTDOWN_REGISTRY_MODULE",
- 0x2d88: "ER_GRP_RPL_FAILED_TO_INIT_HANDLER",
- 0x2d89: "ER_GRP_RPL_FAILED_TO_REGISTER_SERVER_STATE_OBSERVER",
- 0x2d8a: "ER_GRP_RPL_FAILED_TO_REGISTER_TRANS_STATE_OBSERVER",
- 0x2d8b: "ER_GRP_RPL_FAILED_TO_REGISTER_BINLOG_STATE_OBSERVER",
- 0x2d8c: "ER_GRP_RPL_FAILED_TO_START_ON_BOOT",
- 0x2d8d: "ER_GRP_RPL_FAILED_TO_STOP_ON_PLUGIN_UNINSTALL",
- 0x2d8e: "ER_GRP_RPL_FAILED_TO_UNREGISTER_SERVER_STATE_OBSERVER",
- 0x2d8f: "ER_GRP_RPL_FAILED_TO_UNREGISTER_TRANS_STATE_OBSERVER",
- 0x2d90: "ER_GRP_RPL_FAILED_TO_UNREGISTER_BINLOG_STATE_OBSERVER",
- 0x2d91: "ER_GRP_RPL_ALL_OBSERVERS_UNREGISTERED",
- 0x2d92: "ER_GRP_RPL_FAILED_TO_PARSE_THE_GRP_NAME",
- 0x2d93: "ER_GRP_RPL_FAILED_TO_GENERATE_SIDNO_FOR_GRP",
- 0x2d94: "ER_GRP_RPL_APPLIER_NOT_STARTED_DUE_TO_RUNNING_PREV_SHUTDOWN",
- 0x2d95: "ER_GRP_RPL_FAILED_TO_INIT_APPLIER_MODULE",
- 0x2d96: "ER_GRP_RPL_APPLIER_INITIALIZED",
- 0x2d97: "ER_GRP_RPL_COMMUNICATION_SSL_CONF_INFO",
- 0x2d98: "ER_GRP_RPL_ABORTS_AS_SSL_NOT_SUPPORTED_BY_MYSQLD",
- 0x2d99: "ER_GRP_RPL_SSL_DISABLED",
- 0x2d9a: "ER_GRP_RPL_UNABLE_TO_INIT_COMMUNICATION_ENGINE",
- 0x2d9b: "ER_GRP_RPL_BINLOG_DISABLED",
- 0x2d9c: "ER_GRP_RPL_GTID_MODE_OFF",
- 0x2d9d: "ER_GRP_RPL_LOG_SLAVE_UPDATES_NOT_SET",
- 0x2d9e: "ER_GRP_RPL_INVALID_TRANS_WRITE_SET_EXTRACTION_VALUE",
- 0x2d9f: "ER_GRP_RPL_RELAY_LOG_INFO_REPO_MUST_BE_TABLE",
- 0x2da0: "ER_GRP_RPL_MASTER_INFO_REPO_MUST_BE_TABLE",
- 0x2da1: "ER_GRP_RPL_INCORRECT_TYPE_SET_FOR_PARALLEL_APPLIER",
- 0x2da2: "ER_GRP_RPL_SLAVE_PRESERVE_COMMIT_ORDER_NOT_SET",
- 0x2da3: "ER_GRP_RPL_SINGLE_PRIM_MODE_NOT_ALLOWED_WITH_UPDATE_EVERYWHERE",
- 0x2da4: "ER_GRP_RPL_MODULE_TERMINATE_ERROR",
- 0x2da5: "ER_GRP_RPL_GRP_NAME_OPTION_MANDATORY",
- 0x2da6: "ER_GRP_RPL_GRP_NAME_IS_TOO_LONG",
- 0x2da7: "ER_GRP_RPL_GRP_NAME_IS_NOT_VALID_UUID",
- 0x2da8: "ER_GRP_RPL_FLOW_CTRL_MIN_QUOTA_GREATER_THAN_MAX_QUOTA",
- 0x2da9: "ER_GRP_RPL_FLOW_CTRL_MIN_RECOVERY_QUOTA_GREATER_THAN_MAX_QUOTA",
- 0x2daa: "ER_GRP_RPL_FLOW_CTRL_MAX_QUOTA_SMALLER_THAN_MIN_QUOTAS",
- 0x2dab: "ER_GRP_RPL_INVALID_SSL_RECOVERY_STRING",
- 0x2dac: "ER_GRP_RPL_SUPPORTS_ONLY_ONE_FORCE_MEMBERS_SET",
- 0x2dad: "ER_GRP_RPL_FORCE_MEMBERS_SET_UPDATE_NOT_ALLOWED",
- 0x2dae: "ER_GRP_RPL_GRP_COMMUNICATION_INIT_WITH_CONF",
- 0x2daf: "ER_GRP_RPL_UNKNOWN_GRP_RPL_APPLIER_PIPELINE_REQUESTED",
- 0x2db0: "ER_GRP_RPL_FAILED_TO_BOOTSTRAP_EVENT_HANDLING_INFRASTRUCTURE",
- 0x2db1: "ER_GRP_RPL_APPLIER_HANDLER_NOT_INITIALIZED",
- 0x2db2: "ER_GRP_RPL_APPLIER_HANDLER_IS_IN_USE",
- 0x2db3: "ER_GRP_RPL_APPLIER_HANDLER_ROLE_IS_IN_USE",
- 0x2db4: "ER_GRP_RPL_FAILED_TO_INIT_APPLIER_HANDLER",
- 0x2db5: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_INIT_SESSION_THREAD",
- 0x2db6: "ER_GRP_RPL_SQL_SERVICE_COMM_SESSION_NOT_INITIALIZED",
- 0x2db7: "ER_GRP_RPL_SQL_SERVICE_SERVER_SESSION_KILLED",
- 0x2db8: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY",
- 0x2db9: "ER_GRP_RPL_SQL_SERVICE_SERVER_INTERNAL_FAILURE",
- 0x2dba: "ER_GRP_RPL_SQL_SERVICE_RETRIES_EXCEEDED_ON_SESSION_STATE",
- 0x2dbb: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_FETCH_SECURITY_CTX",
- 0x2dbc: "ER_GRP_RPL_SQL_SERVICE_SERVER_ACCESS_DENIED_FOR_USER",
- 0x2dbd: "ER_GRP_RPL_SQL_SERVICE_MAX_CONN_ERROR_FROM_SERVER",
- 0x2dbe: "ER_GRP_RPL_SQL_SERVICE_SERVER_ERROR_ON_CONN",
- 0x2dbf: "ER_GRP_RPL_UNREACHABLE_MAJORITY_TIMEOUT_FOR_MEMBER",
- 0x2dc0: "ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS",
- 0x2dc1: "ER_GRP_RPL_GMS_LISTENER_FAILED_TO_LOG_NOTIFICATION",
- 0x2dc2: "ER_GRP_RPL_GRP_COMMUNICATION_ENG_INIT_FAILED",
- 0x2dc3: "ER_GRP_RPL_SET_GRP_COMMUNICATION_ENG_LOGGER_FAILED",
- 0x2dc4: "ER_GRP_RPL_DEBUG_OPTIONS",
- 0x2dc5: "ER_GRP_RPL_INVALID_DEBUG_OPTIONS",
- 0x2dc6: "ER_GRP_RPL_EXIT_GRP_GCS_ERROR",
- 0x2dc7: "ER_GRP_RPL_GRP_MEMBER_OFFLINE",
- 0x2dc8: "ER_GRP_RPL_GCS_INTERFACE_ERROR",
- 0x2dc9: "ER_GRP_RPL_FORCE_MEMBER_VALUE_SET_ERROR",
- 0x2dca: "ER_GRP_RPL_FORCE_MEMBER_VALUE_SET",
- 0x2dcb: "ER_GRP_RPL_FORCE_MEMBER_VALUE_TIME_OUT",
- 0x2dcc: "ER_GRP_RPL_BROADCAST_COMMIT_MSSG_TOO_BIG",
- 0x2dcd: "ER_GRP_RPL_SEND_STATS_ERROR",
- 0x2dce: "ER_GRP_RPL_MEMBER_STATS_INFO",
- 0x2dcf: "ER_GRP_RPL_FLOW_CONTROL_STATS",
- 0x2dd0: "ER_GRP_RPL_UNABLE_TO_CONVERT_PACKET_TO_EVENT",
- 0x2dd1: "ER_GRP_RPL_PIPELINE_CREATE_FAILED",
- 0x2dd2: "ER_GRP_RPL_PIPELINE_REINIT_FAILED_WRITE",
- 0x2dd3: "ER_GRP_RPL_UNABLE_TO_CONVERT_EVENT_TO_PACKET",
- 0x2dd4: "ER_GRP_RPL_PIPELINE_FLUSH_FAIL",
- 0x2dd5: "ER_GRP_RPL_PIPELINE_REINIT_FAILED_READ",
- 0x2dd6: "ER_GRP_RPL_STOP_REP_CHANNEL",
- 0x2dd7: "ER_GRP_RPL_GCS_GR_ERROR_MSG",
- 0x2dd8: "ER_GRP_RPL_SLAVE_IO_THREAD_UNBLOCKED",
- 0x2dd9: "ER_GRP_RPL_SLAVE_IO_THREAD_ERROR_OUT",
- 0x2dda: "ER_GRP_RPL_SLAVE_APPLIER_THREAD_UNBLOCKED",
- 0x2ddb: "ER_GRP_RPL_SLAVE_APPLIER_THREAD_ERROR_OUT",
- 0x2ddc: "ER_LDAP_AUTH_FAILED_TO_CREATE_OR_GET_CONNECTION",
- 0x2ddd: "ER_LDAP_AUTH_DEINIT_FAILED",
- 0x2dde: "ER_LDAP_AUTH_SKIPPING_USER_GROUP_SEARCH",
- 0x2ddf: "ER_LDAP_AUTH_POOL_DISABLE_MAX_SIZE_ZERO",
- 0x2de0: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_OBJECT_CREATOR",
- 0x2de1: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_OBJECT",
- 0x2de2: "ER_LDAP_AUTH_TLS_CONF",
- 0x2de3: "ER_LDAP_AUTH_TLS_CONNECTION",
- 0x2de4: "ER_LDAP_AUTH_CONN_POOL_NOT_CREATED",
- 0x2de5: "ER_LDAP_AUTH_CONN_POOL_INITIALIZING",
- 0x2de6: "ER_LDAP_AUTH_CONN_POOL_DEINITIALIZING",
- 0x2de7: "ER_LDAP_AUTH_ZERO_MAX_POOL_SIZE_UNCHANGED",
- 0x2de8: "ER_LDAP_AUTH_POOL_REINITIALIZING",
- 0x2de9: "ER_LDAP_AUTH_FAILED_TO_WRITE_PACKET",
- 0x2dea: "ER_LDAP_AUTH_SETTING_USERNAME",
- 0x2deb: "ER_LDAP_AUTH_USER_AUTH_DATA",
- 0x2dec: "ER_LDAP_AUTH_INFO_FOR_USER",
- 0x2ded: "ER_LDAP_AUTH_USER_GROUP_SEARCH_INFO",
- 0x2dee: "ER_LDAP_AUTH_GRP_SEARCH_SPECIAL_HDL",
- 0x2def: "ER_LDAP_AUTH_GRP_IS_FULL_DN",
- 0x2df0: "ER_LDAP_AUTH_USER_NOT_FOUND_IN_ANY_GRP",
- 0x2df1: "ER_LDAP_AUTH_USER_FOUND_IN_MANY_GRPS",
- 0x2df2: "ER_LDAP_AUTH_USER_HAS_MULTIPLE_GRP_NAMES",
- 0x2df3: "ER_LDAP_AUTH_SEARCHED_USER_GRP_NAME",
- 0x2df4: "ER_LDAP_AUTH_OBJECT_CREATE_TIMESTAMP",
- 0x2df5: "ER_LDAP_AUTH_CERTIFICATE_NAME",
- 0x2df6: "ER_LDAP_AUTH_FAILED_TO_POOL_DEINIT",
- 0x2df7: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_RECONSTRUCTING",
- 0x2df8: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_INIT_STATE",
- 0x2df9: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_DEINIT_STATE",
- 0x2dfa: "ER_LDAP_AUTH_FAILED_TO_DEINITIALIZE_POOL_IN_RECONSTRUCT_STATE",
- 0x2dfb: "ER_LDAP_AUTH_FAILED_TO_DEINITIALIZE_NOT_READY_POOL",
- 0x2dfc: "ER_LDAP_AUTH_FAILED_TO_GET_CONNECTION_AS_PLUGIN_NOT_READY",
- 0x2dfd: "ER_LDAP_AUTH_CONNECTION_POOL_INIT_FAILED",
- 0x2dfe: "ER_LDAP_AUTH_MAX_ALLOWED_CONNECTION_LIMIT_HIT",
- 0x2dff: "ER_LDAP_AUTH_MAX_POOL_SIZE_SET_FAILED",
- 0x2e00: "ER_LDAP_AUTH_PLUGIN_FAILED_TO_READ_PACKET",
- 0x2e01: "ER_LDAP_AUTH_CREATING_LDAP_CONNECTION",
- 0x2e02: "ER_LDAP_AUTH_GETTING_CONNECTION_FROM_POOL",
- 0x2e03: "ER_LDAP_AUTH_RETURNING_CONNECTION_TO_POOL",
- 0x2e04: "ER_LDAP_AUTH_SEARCH_USER_GROUP_ATTR_NOT_FOUND",
- 0x2e05: "ER_LDAP_AUTH_LDAP_INFO_NULL",
- 0x2e06: "ER_LDAP_AUTH_FREEING_CONNECTION",
- 0x2e07: "ER_LDAP_AUTH_CONNECTION_PUSHED_TO_POOL",
- 0x2e08: "ER_LDAP_AUTH_CONNECTION_CREATOR_ENTER",
- 0x2e09: "ER_LDAP_AUTH_STARTING_TLS",
- 0x2e0a: "ER_LDAP_AUTH_CONNECTION_GET_LDAP_INFO_NULL",
- 0x2e0b: "ER_LDAP_AUTH_DELETING_CONNECTION_KEY",
- 0x2e0c: "ER_LDAP_AUTH_POOLED_CONNECTION_KEY",
- 0x2e0d: "ER_LDAP_AUTH_CREATE_CONNECTION_KEY",
- 0x2e0e: "ER_LDAP_AUTH_COMMUNICATION_HOST_INFO",
- 0x2e0f: "ER_LDAP_AUTH_METHOD_TO_CLIENT",
- 0x2e10: "ER_LDAP_AUTH_SASL_REQUEST_FROM_CLIENT",
- 0x2e11: "ER_LDAP_AUTH_SASL_PROCESS_SASL",
- 0x2e12: "ER_LDAP_AUTH_SASL_BIND_SUCCESS_INFO",
- 0x2e13: "ER_LDAP_AUTH_STARTED_FOR_USER",
- 0x2e14: "ER_LDAP_AUTH_DISTINGUISHED_NAME",
- 0x2e15: "ER_LDAP_AUTH_INIT_FAILED",
- 0x2e16: "ER_LDAP_AUTH_OR_GROUP_RETRIEVAL_FAILED",
- 0x2e17: "ER_LDAP_AUTH_USER_GROUP_SEARCH_FAILED",
- 0x2e18: "ER_LDAP_AUTH_USER_BIND_FAILED",
- 0x2e19: "ER_LDAP_AUTH_POOL_GET_FAILED_TO_CREATE_CONNECTION",
- 0x2e1a: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_CONNECTION",
- 0x2e1b: "ER_LDAP_AUTH_FAILED_TO_ESTABLISH_TLS_CONNECTION",
- 0x2e1c: "ER_LDAP_AUTH_FAILED_TO_SEARCH_DN",
- 0x2e1d: "ER_LDAP_AUTH_CONNECTION_POOL_REINIT_ENTER",
- 0x2e1e: "ER_SYSTEMD_NOTIFY_PATH_TOO_LONG",
- 0x2e1f: "ER_SYSTEMD_NOTIFY_CONNECT_FAILED",
- 0x2e20: "ER_SYSTEMD_NOTIFY_WRITE_FAILED",
- 0x2e21: "ER_FOUND_MISSING_GTIDS",
- 0x2e22: "ER_PID_FILE_PRIV_DIRECTORY_INSECURE",
- 0x2e23: "ER_CANT_CHECK_PID_PATH",
- 0x2e24: "ER_VALIDATE_PWD_STATUS_VAR_REGISTRATION_FAILED",
- 0x2e25: "ER_VALIDATE_PWD_STATUS_VAR_UNREGISTRATION_FAILED",
- 0x2e26: "ER_VALIDATE_PWD_DICT_FILE_OPEN_FAILED",
- 0x2e27: "ER_VALIDATE_PWD_COULD_BE_NULL",
- 0x2e28: "ER_VALIDATE_PWD_STRING_CONV_TO_LOWERCASE_FAILED",
- 0x2e29: "ER_VALIDATE_PWD_STRING_CONV_TO_BUFFER_FAILED",
- 0x2e2a: "ER_VALIDATE_PWD_STRING_HANDLER_MEM_ALLOCATION_FAILED",
- 0x2e2b: "ER_VALIDATE_PWD_STRONG_POLICY_DICT_FILE_UNSPECIFIED",
- 0x2e2c: "ER_VALIDATE_PWD_CONVERT_TO_BUFFER_FAILED",
- 0x2e2d: "ER_VALIDATE_PWD_VARIABLE_REGISTRATION_FAILED",
- 0x2e2e: "ER_VALIDATE_PWD_VARIABLE_UNREGISTRATION_FAILED",
- 0x2e2f: "ER_KEYRING_MIGRATION_EXTRA_OPTIONS",
- 0x2e31: "ER_IB_MSG_0",
- 0x2e32: "ER_IB_MSG_1",
- 0x2e33: "ER_IB_MSG_2",
- 0x2e34: "ER_IB_MSG_3",
- 0x2e35: "ER_IB_MSG_4",
- 0x2e36: "ER_IB_MSG_5",
- 0x2e37: "ER_IB_MSG_6",
- 0x2e38: "ER_IB_MSG_7",
- 0x2e39: "ER_IB_MSG_8",
- 0x2e3a: "ER_IB_MSG_9",
- 0x2e3b: "ER_IB_MSG_10",
- 0x2e3c: "ER_IB_MSG_11",
- 0x2e3d: "ER_IB_MSG_12",
- 0x2e3e: "ER_IB_MSG_13",
- 0x2e3f: "ER_IB_MSG_14",
- 0x2e40: "ER_IB_MSG_15",
- 0x2e41: "ER_IB_MSG_16",
- 0x2e42: "ER_IB_MSG_17",
- 0x2e43: "ER_IB_MSG_18",
- 0x2e44: "ER_IB_MSG_19",
- 0x2e45: "ER_IB_MSG_20",
- 0x2e46: "ER_IB_MSG_21",
- 0x2e47: "ER_IB_MSG_22",
- 0x2e48: "ER_IB_MSG_23",
- 0x2e49: "ER_IB_MSG_24",
- 0x2e4a: "ER_IB_MSG_25",
- 0x2e4b: "ER_IB_MSG_26",
- 0x2e4c: "ER_IB_MSG_27",
- 0x2e4d: "ER_IB_MSG_28",
- 0x2e4e: "ER_IB_MSG_29",
- 0x2e4f: "ER_IB_MSG_30",
- 0x2e50: "ER_IB_MSG_31",
- 0x2e51: "ER_IB_MSG_32",
- 0x2e52: "ER_IB_MSG_33",
- 0x2e53: "ER_IB_MSG_34",
- 0x2e54: "ER_IB_MSG_35",
- 0x2e55: "ER_IB_MSG_36",
- 0x2e56: "ER_IB_MSG_37",
- 0x2e57: "ER_IB_MSG_38",
- 0x2e58: "ER_IB_MSG_39",
- 0x2e59: "ER_IB_MSG_40",
- 0x2e5a: "ER_IB_MSG_41",
- 0x2e5b: "ER_IB_MSG_42",
- 0x2e5c: "ER_IB_MSG_43",
- 0x2e5d: "ER_IB_MSG_44",
- 0x2e5e: "ER_IB_MSG_45",
- 0x2e5f: "ER_IB_MSG_46",
- 0x2e60: "ER_IB_MSG_47",
- 0x2e61: "ER_IB_MSG_48",
- 0x2e62: "ER_IB_MSG_49",
- 0x2e63: "ER_IB_MSG_50",
- 0x2e64: "ER_IB_MSG_51",
- 0x2e65: "ER_IB_MSG_52",
- 0x2e66: "ER_IB_MSG_53",
- 0x2e67: "ER_IB_MSG_54",
- 0x2e68: "ER_IB_MSG_55",
- 0x2e69: "ER_IB_MSG_56",
- 0x2e6a: "ER_IB_MSG_57",
- 0x2e6b: "ER_IB_MSG_58",
- 0x2e6c: "ER_IB_MSG_59",
- 0x2e6d: "ER_IB_MSG_60",
- 0x2e6e: "ER_IB_MSG_61",
- 0x2e6f: "ER_IB_MSG_62",
- 0x2e70: "ER_IB_MSG_63",
- 0x2e71: "ER_IB_MSG_64",
- 0x2e72: "ER_IB_MSG_65",
- 0x2e73: "ER_IB_MSG_66",
- 0x2e74: "ER_IB_MSG_67",
- 0x2e75: "ER_IB_MSG_68",
- 0x2e76: "ER_IB_MSG_69",
- 0x2e77: "ER_IB_MSG_70",
- 0x2e78: "ER_IB_MSG_71",
- 0x2e79: "ER_IB_MSG_72",
- 0x2e7a: "ER_IB_MSG_73",
- 0x2e7b: "ER_IB_MSG_74",
- 0x2e7c: "ER_IB_MSG_75",
- 0x2e7d: "ER_IB_MSG_76",
- 0x2e7e: "ER_IB_MSG_77",
- 0x2e7f: "ER_IB_MSG_78",
- 0x2e80: "ER_IB_MSG_79",
- 0x2e81: "ER_IB_MSG_80",
- 0x2e82: "ER_IB_MSG_81",
- 0x2e83: "ER_IB_MSG_82",
- 0x2e84: "ER_IB_MSG_83",
- 0x2e85: "ER_IB_MSG_84",
- 0x2e86: "ER_IB_MSG_85",
- 0x2e87: "ER_IB_MSG_86",
- 0x2e88: "ER_IB_MSG_87",
- 0x2e89: "ER_IB_MSG_88",
- 0x2e8a: "ER_IB_MSG_89",
- 0x2e8b: "ER_IB_MSG_90",
- 0x2e8c: "ER_IB_MSG_91",
- 0x2e8d: "ER_IB_MSG_92",
- 0x2e8e: "ER_IB_MSG_93",
- 0x2e8f: "ER_IB_MSG_94",
- 0x2e90: "ER_IB_MSG_95",
- 0x2e91: "ER_IB_MSG_96",
- 0x2e92: "ER_IB_MSG_97",
- 0x2e93: "ER_IB_MSG_98",
- 0x2e94: "ER_IB_MSG_99",
- 0x2e95: "ER_IB_MSG_100",
- 0x2e96: "ER_IB_MSG_101",
- 0x2e97: "ER_IB_MSG_102",
- 0x2e98: "ER_IB_MSG_103",
- 0x2e99: "ER_IB_MSG_104",
- 0x2e9a: "ER_IB_MSG_105",
- 0x2e9b: "ER_IB_MSG_106",
- 0x2e9c: "ER_IB_MSG_107",
- 0x2e9d: "ER_IB_MSG_108",
- 0x2e9e: "ER_IB_MSG_109",
- 0x2e9f: "ER_IB_MSG_110",
- 0x2ea0: "ER_IB_MSG_111",
- 0x2ea1: "ER_IB_MSG_112",
- 0x2ea2: "ER_IB_MSG_113",
- 0x2ea3: "ER_IB_MSG_114",
- 0x2ea4: "ER_IB_MSG_115",
- 0x2ea5: "ER_IB_MSG_116",
- 0x2ea6: "ER_IB_MSG_117",
- 0x2ea7: "ER_IB_MSG_118",
- 0x2ea8: "ER_IB_MSG_119",
- 0x2ea9: "ER_IB_MSG_120",
- 0x2eaa: "ER_IB_MSG_121",
- 0x2eab: "ER_IB_MSG_122",
- 0x2eac: "ER_IB_MSG_123",
- 0x2ead: "ER_IB_MSG_124",
- 0x2eae: "ER_IB_MSG_125",
- 0x2eaf: "ER_IB_MSG_126",
- 0x2eb0: "ER_IB_MSG_127",
- 0x2eb1: "ER_IB_MSG_128",
- 0x2eb2: "ER_IB_MSG_129",
- 0x2eb3: "ER_IB_MSG_130",
- 0x2eb4: "ER_IB_MSG_131",
- 0x2eb5: "ER_IB_MSG_132",
- 0x2eb6: "ER_IB_MSG_133",
- 0x2eb7: "ER_IB_MSG_134",
- 0x2eb8: "ER_IB_MSG_135",
- 0x2eb9: "ER_IB_MSG_136",
- 0x2eba: "ER_IB_MSG_137",
- 0x2ebb: "ER_IB_MSG_138",
- 0x2ebc: "ER_IB_MSG_139",
- 0x2ebd: "ER_IB_MSG_140",
- 0x2ebe: "ER_IB_MSG_141",
- 0x2ebf: "ER_IB_MSG_142",
- 0x2ec0: "ER_IB_MSG_143",
- 0x2ec1: "ER_IB_MSG_144",
- 0x2ec2: "ER_IB_MSG_145",
- 0x2ec3: "ER_IB_MSG_146",
- 0x2ec4: "ER_IB_MSG_147",
- 0x2ec5: "ER_IB_MSG_148",
- 0x2ec6: "ER_IB_MSG_149",
- 0x2ec7: "ER_IB_MSG_150",
- 0x2ec8: "ER_IB_MSG_151",
- 0x2ec9: "ER_IB_MSG_152",
- 0x2eca: "ER_IB_MSG_153",
- 0x2ecb: "ER_IB_MSG_154",
- 0x2ecc: "ER_IB_MSG_155",
- 0x2ecd: "ER_IB_MSG_156",
- 0x2ece: "ER_IB_MSG_157",
- 0x2ecf: "ER_IB_MSG_158",
- 0x2ed0: "ER_IB_MSG_159",
- 0x2ed1: "ER_IB_MSG_160",
- 0x2ed2: "ER_IB_MSG_161",
- 0x2ed3: "ER_IB_MSG_162",
- 0x2ed4: "ER_IB_MSG_163",
- 0x2ed5: "ER_IB_MSG_164",
- 0x2ed6: "ER_IB_MSG_165",
- 0x2ed7: "ER_IB_MSG_166",
- 0x2ed8: "ER_IB_MSG_167",
- 0x2ed9: "ER_IB_MSG_168",
- 0x2eda: "ER_IB_MSG_169",
- 0x2edb: "ER_IB_MSG_170",
- 0x2edc: "ER_IB_MSG_171",
- 0x2edd: "ER_IB_MSG_172",
- 0x2ede: "ER_IB_MSG_173",
- 0x2edf: "ER_IB_MSG_174",
- 0x2ee0: "ER_IB_MSG_175",
- 0x2ee1: "ER_IB_MSG_176",
- 0x2ee2: "ER_IB_MSG_177",
- 0x2ee3: "ER_IB_MSG_178",
- 0x2ee4: "ER_IB_MSG_179",
- 0x2ee5: "ER_IB_MSG_180",
- 0x2ee6: "ER_IB_MSG_181",
- 0x2ee7: "ER_IB_MSG_182",
- 0x2ee8: "ER_IB_MSG_183",
- 0x2ee9: "ER_IB_MSG_184",
- 0x2eea: "ER_IB_MSG_185",
- 0x2eeb: "ER_IB_MSG_186",
- 0x2eec: "ER_IB_MSG_187",
- 0x2eed: "ER_IB_MSG_188",
- 0x2eee: "ER_IB_MSG_189",
- 0x2eef: "ER_IB_MSG_190",
- 0x2ef0: "ER_IB_MSG_191",
- 0x2ef1: "ER_IB_MSG_192",
- 0x2ef2: "ER_IB_MSG_193",
- 0x2ef3: "ER_IB_MSG_194",
- 0x2ef4: "ER_IB_MSG_195",
- 0x2ef5: "ER_IB_MSG_196",
- 0x2ef6: "ER_IB_MSG_197",
- 0x2ef7: "ER_IB_MSG_198",
- 0x2ef8: "ER_IB_MSG_199",
- 0x2ef9: "ER_IB_MSG_200",
- 0x2efa: "ER_IB_MSG_201",
- 0x2efb: "ER_IB_MSG_202",
- 0x2efc: "ER_IB_MSG_203",
- 0x2efd: "ER_IB_MSG_204",
- 0x2efe: "ER_IB_MSG_205",
- 0x2eff: "ER_IB_MSG_206",
- 0x2f00: "ER_IB_MSG_207",
- 0x2f01: "ER_IB_MSG_208",
- 0x2f02: "ER_IB_MSG_209",
- 0x2f03: "ER_IB_MSG_210",
- 0x2f04: "ER_IB_MSG_211",
- 0x2f05: "ER_IB_MSG_212",
- 0x2f06: "ER_IB_MSG_213",
- 0x2f07: "ER_IB_MSG_214",
- 0x2f08: "ER_IB_MSG_215",
- 0x2f09: "ER_IB_MSG_216",
- 0x2f0a: "ER_IB_MSG_217",
- 0x2f0b: "ER_IB_MSG_218",
- 0x2f0c: "ER_IB_MSG_219",
- 0x2f0d: "ER_IB_MSG_220",
- 0x2f0e: "ER_IB_MSG_221",
- 0x2f0f: "ER_IB_MSG_222",
- 0x2f10: "ER_IB_MSG_223",
- 0x2f11: "ER_IB_MSG_224",
- 0x2f12: "ER_IB_MSG_225",
- 0x2f13: "ER_IB_MSG_226",
- 0x2f14: "ER_IB_MSG_227",
- 0x2f15: "ER_IB_MSG_228",
- 0x2f16: "ER_IB_MSG_229",
- 0x2f17: "ER_IB_MSG_230",
- 0x2f18: "ER_IB_MSG_231",
- 0x2f19: "ER_IB_MSG_232",
- 0x2f1a: "ER_IB_MSG_233",
- 0x2f1b: "ER_IB_MSG_234",
- 0x2f1c: "ER_IB_MSG_235",
- 0x2f1d: "ER_IB_MSG_236",
- 0x2f1e: "ER_IB_MSG_237",
- 0x2f1f: "ER_IB_MSG_238",
- 0x2f20: "ER_IB_MSG_239",
- 0x2f21: "ER_IB_MSG_240",
- 0x2f22: "ER_IB_MSG_241",
- 0x2f23: "ER_IB_MSG_242",
- 0x2f24: "ER_IB_MSG_243",
- 0x2f25: "ER_IB_MSG_244",
- 0x2f26: "ER_IB_MSG_245",
- 0x2f27: "ER_IB_MSG_246",
- 0x2f28: "ER_IB_MSG_247",
- 0x2f29: "ER_IB_MSG_248",
- 0x2f2a: "ER_IB_MSG_249",
- 0x2f2b: "ER_IB_MSG_250",
- 0x2f2c: "ER_IB_MSG_251",
- 0x2f2d: "ER_IB_MSG_252",
- 0x2f2e: "ER_IB_MSG_253",
- 0x2f2f: "ER_IB_MSG_254",
- 0x2f30: "ER_IB_MSG_255",
- 0x2f31: "ER_IB_MSG_256",
- 0x2f32: "ER_IB_MSG_257",
- 0x2f33: "ER_IB_MSG_258",
- 0x2f34: "ER_IB_MSG_259",
- 0x2f35: "ER_IB_MSG_260",
- 0x2f36: "ER_IB_MSG_261",
- 0x2f37: "ER_IB_MSG_262",
- 0x2f38: "ER_IB_MSG_263",
- 0x2f39: "ER_IB_MSG_264",
- 0x2f3a: "ER_IB_MSG_265",
- 0x2f3b: "ER_IB_MSG_266",
- 0x2f3c: "ER_IB_MSG_267",
- 0x2f3d: "ER_IB_MSG_268",
- 0x2f3e: "ER_IB_MSG_269",
- 0x2f3f: "ER_IB_MSG_270",
- 0x2f40: "ER_IB_MSG_271",
- 0x2f41: "ER_IB_MSG_272",
- 0x2f42: "ER_IB_MSG_273",
- 0x2f43: "ER_IB_MSG_274",
- 0x2f44: "ER_IB_MSG_275",
- 0x2f45: "ER_IB_MSG_276",
- 0x2f46: "ER_IB_MSG_277",
- 0x2f47: "ER_IB_MSG_278",
- 0x2f48: "ER_IB_MSG_279",
- 0x2f49: "ER_IB_MSG_280",
- 0x2f4a: "ER_IB_MSG_281",
- 0x2f4b: "ER_IB_MSG_282",
- 0x2f4c: "ER_IB_MSG_283",
- 0x2f4d: "ER_IB_MSG_284",
- 0x2f4e: "ER_IB_MSG_285",
- 0x2f4f: "ER_IB_MSG_286",
- 0x2f50: "ER_IB_MSG_287",
- 0x2f51: "ER_IB_MSG_288",
- 0x2f52: "ER_IB_MSG_289",
- 0x2f53: "ER_IB_MSG_290",
- 0x2f54: "ER_IB_MSG_291",
- 0x2f55: "ER_IB_MSG_292",
- 0x2f56: "ER_IB_MSG_293",
- 0x2f57: "ER_IB_MSG_294",
- 0x2f58: "ER_IB_MSG_295",
- 0x2f59: "ER_IB_MSG_296",
- 0x2f5a: "ER_IB_MSG_297",
- 0x2f5b: "ER_IB_MSG_298",
- 0x2f5c: "ER_IB_MSG_299",
- 0x2f5d: "ER_IB_MSG_300",
- 0x2f5e: "ER_IB_MSG_301",
- 0x2f5f: "ER_IB_MSG_302",
- 0x2f60: "ER_IB_MSG_303",
- 0x2f61: "ER_IB_MSG_304",
- 0x2f62: "ER_IB_MSG_305",
- 0x2f63: "ER_IB_MSG_306",
- 0x2f64: "ER_IB_MSG_307",
- 0x2f65: "ER_IB_MSG_308",
- 0x2f66: "ER_IB_MSG_309",
- 0x2f67: "ER_IB_MSG_310",
- 0x2f68: "ER_IB_MSG_311",
- 0x2f69: "ER_IB_MSG_312",
- 0x2f6a: "ER_IB_MSG_313",
- 0x2f6b: "ER_IB_MSG_314",
- 0x2f6c: "ER_IB_MSG_315",
- 0x2f6d: "ER_IB_MSG_316",
- 0x2f6e: "ER_IB_MSG_317",
- 0x2f6f: "ER_IB_MSG_318",
- 0x2f70: "ER_IB_MSG_319",
- 0x2f71: "ER_IB_MSG_320",
- 0x2f72: "ER_IB_MSG_321",
- 0x2f73: "ER_IB_MSG_322",
- 0x2f74: "ER_IB_MSG_323",
- 0x2f75: "ER_IB_MSG_324",
- 0x2f76: "ER_IB_MSG_325",
- 0x2f77: "ER_IB_MSG_326",
- 0x2f78: "ER_IB_MSG_327",
- 0x2f79: "ER_IB_MSG_328",
- 0x2f7a: "ER_IB_MSG_329",
- 0x2f7b: "ER_IB_MSG_330",
- 0x2f7c: "ER_IB_MSG_331",
- 0x2f7d: "ER_IB_MSG_332",
- 0x2f7e: "ER_IB_MSG_333",
- 0x2f7f: "ER_IB_MSG_334",
- 0x2f80: "ER_IB_MSG_335",
- 0x2f81: "ER_IB_MSG_336",
- 0x2f82: "ER_IB_MSG_337",
- 0x2f83: "ER_IB_MSG_338",
- 0x2f84: "ER_IB_MSG_339",
- 0x2f85: "ER_IB_MSG_340",
- 0x2f86: "ER_IB_MSG_341",
- 0x2f87: "ER_IB_MSG_342",
- 0x2f88: "ER_IB_MSG_343",
- 0x2f89: "ER_IB_MSG_344",
- 0x2f8a: "ER_IB_MSG_345",
- 0x2f8b: "ER_IB_MSG_346",
- 0x2f8c: "ER_IB_MSG_347",
- 0x2f8d: "ER_IB_MSG_348",
- 0x2f8e: "ER_IB_MSG_349",
- 0x2f8f: "ER_IB_MSG_350",
- 0x2f90: "ER_IB_MSG_351",
- 0x2f91: "ER_IB_MSG_352",
- 0x2f92: "ER_IB_MSG_353",
- 0x2f93: "ER_IB_MSG_354",
- 0x2f94: "ER_IB_MSG_355",
- 0x2f95: "ER_IB_MSG_356",
- 0x2f96: "ER_IB_MSG_357",
- 0x2f97: "ER_IB_MSG_358",
- 0x2f98: "ER_IB_MSG_359",
- 0x2f99: "ER_IB_MSG_360",
- 0x2f9a: "ER_IB_MSG_361",
- 0x2f9b: "ER_IB_MSG_362",
- 0x2f9c: "ER_IB_MSG_363",
- 0x2f9d: "ER_IB_MSG_364",
- 0x2f9e: "ER_IB_MSG_365",
- 0x2f9f: "ER_IB_MSG_366",
- 0x2fa0: "ER_IB_MSG_367",
- 0x2fa1: "ER_IB_MSG_368",
- 0x2fa2: "ER_IB_MSG_369",
- 0x2fa3: "ER_IB_MSG_370",
- 0x2fa4: "ER_IB_MSG_371",
- 0x2fa5: "ER_IB_MSG_372",
- 0x2fa6: "ER_IB_MSG_373",
- 0x2fa7: "ER_IB_MSG_374",
- 0x2fa8: "ER_IB_MSG_375",
- 0x2fa9: "ER_IB_MSG_376",
- 0x2faa: "ER_IB_MSG_377",
- 0x2fab: "ER_IB_MSG_378",
- 0x2fac: "ER_IB_MSG_379",
- 0x2fad: "ER_IB_MSG_380",
- 0x2fae: "ER_IB_MSG_381",
- 0x2faf: "ER_IB_MSG_382",
- 0x2fb0: "ER_IB_MSG_383",
- 0x2fb1: "ER_IB_MSG_384",
- 0x2fb2: "ER_IB_MSG_385",
- 0x2fb3: "ER_IB_MSG_386",
- 0x2fb4: "ER_IB_MSG_387",
- 0x2fb5: "ER_IB_MSG_388",
- 0x2fb6: "ER_IB_MSG_389",
- 0x2fb7: "ER_IB_MSG_390",
- 0x2fb8: "ER_IB_MSG_391",
- 0x2fb9: "ER_IB_MSG_392",
- 0x2fba: "ER_IB_MSG_393",
- 0x2fbb: "ER_IB_MSG_394",
- 0x2fbc: "ER_IB_MSG_395",
- 0x2fbd: "ER_IB_MSG_396",
- 0x2fbe: "ER_IB_MSG_397",
- 0x2fbf: "ER_IB_MSG_398",
- 0x2fc0: "ER_IB_MSG_399",
- 0x2fc1: "ER_IB_MSG_400",
- 0x2fc2: "ER_IB_MSG_401",
- 0x2fc3: "ER_IB_MSG_402",
- 0x2fc4: "ER_IB_MSG_403",
- 0x2fc5: "ER_IB_MSG_404",
- 0x2fc6: "ER_IB_MSG_405",
- 0x2fc7: "ER_IB_MSG_406",
- 0x2fc8: "ER_IB_MSG_407",
- 0x2fc9: "ER_IB_MSG_408",
- 0x2fca: "ER_IB_MSG_409",
- 0x2fcb: "ER_IB_MSG_410",
- 0x2fcc: "ER_IB_MSG_411",
- 0x2fcd: "ER_IB_MSG_412",
- 0x2fce: "ER_IB_MSG_413",
- 0x2fcf: "ER_IB_MSG_414",
- 0x2fd0: "ER_IB_MSG_415",
- 0x2fd1: "ER_IB_MSG_416",
- 0x2fd2: "ER_IB_MSG_417",
- 0x2fd3: "ER_IB_MSG_418",
- 0x2fd4: "ER_IB_MSG_419",
- 0x2fd5: "ER_IB_MSG_420",
- 0x2fd6: "ER_IB_MSG_421",
- 0x2fd7: "ER_IB_MSG_422",
- 0x2fd8: "ER_IB_MSG_423",
- 0x2fd9: "ER_IB_MSG_424",
- 0x2fda: "ER_IB_MSG_425",
- 0x2fdb: "ER_IB_MSG_426",
- 0x2fdc: "ER_IB_MSG_427",
- 0x2fdd: "ER_IB_MSG_428",
- 0x2fde: "ER_IB_MSG_429",
- 0x2fdf: "ER_IB_MSG_430",
- 0x2fe0: "ER_IB_MSG_431",
- 0x2fe1: "ER_IB_MSG_432",
- 0x2fe2: "ER_IB_MSG_433",
- 0x2fe3: "ER_IB_MSG_434",
- 0x2fe4: "ER_IB_MSG_435",
- 0x2fe5: "ER_IB_MSG_436",
- 0x2fe6: "ER_IB_MSG_437",
- 0x2fe7: "ER_IB_MSG_438",
- 0x2fe8: "ER_IB_MSG_439",
- 0x2fe9: "ER_IB_MSG_440",
- 0x2fea: "ER_IB_MSG_441",
- 0x2feb: "ER_IB_MSG_442",
- 0x2fec: "ER_IB_MSG_443",
- 0x2fed: "ER_IB_MSG_444",
- 0x2fee: "ER_IB_MSG_445",
- 0x2fef: "ER_IB_MSG_446",
- 0x2ff0: "ER_IB_MSG_447",
- 0x2ff1: "ER_IB_MSG_448",
- 0x2ff2: "ER_IB_MSG_449",
- 0x2ff3: "ER_IB_MSG_450",
- 0x2ff4: "ER_IB_MSG_451",
- 0x2ff5: "ER_IB_MSG_452",
- 0x2ff6: "ER_IB_MSG_453",
- 0x2ff7: "ER_IB_MSG_454",
- 0x2ff8: "ER_IB_MSG_455",
- 0x2ff9: "ER_IB_MSG_456",
- 0x2ffa: "ER_IB_MSG_457",
- 0x2ffb: "ER_IB_MSG_458",
- 0x2ffc: "ER_IB_MSG_459",
- 0x2ffd: "ER_IB_MSG_460",
- 0x2ffe: "ER_IB_MSG_461",
- 0x2fff: "ER_IB_MSG_462",
+ 0x299A: "ER_NDB_BINLOG_SKIPPING_OLD_SCHEMA_OPERATION",
+ 0x299B: "ER_NDB_CLUSTER_FAILURE",
+ 0x299C: "ER_NDB_TABLES_INITIALLY_READ_ONLY_ON_RECONNECT",
+ 0x299D: "ER_NDB_IGNORING_UNKNOWN_EVENT",
+ 0x299E: "ER_NDB_BINLOG_OPENING_INDEX",
+ 0x299F: "ER_NDB_BINLOG_CANT_LOCK_NDB_BINLOG_INDEX",
+ 0x29A0: "ER_NDB_BINLOG_INJECTING_RANDOM_WRITE_FAILURE",
+ 0x29A1: "ER_NDB_BINLOG_CANT_WRITE_TO_NDB_BINLOG_INDEX",
+ 0x29A2: "ER_NDB_BINLOG_WRITING_TO_NDB_BINLOG_INDEX",
+ 0x29A3: "ER_NDB_BINLOG_CANT_COMMIT_TO_NDB_BINLOG_INDEX",
+ 0x29A4: "ER_NDB_BINLOG_WRITE_TO_NDB_BINLOG_INDEX_FAILED_AFTER_KILL",
+ 0x29A5: "ER_NDB_BINLOG_USING_SERVER_ID_0_SLAVES_WILL_NOT",
+ 0x29A6: "ER_NDB_SERVER_ID_RESERVED_OR_TOO_LARGE",
+ 0x29A7: "ER_NDB_BINLOG_NDB_LOG_TRANSACTION_ID_REQUIRES_V2_ROW_EVENTS",
+ 0x29A8: "ER_NDB_BINLOG_NDB_LOG_APPLY_STATUS_FORCING_FULL_USE_WRITE",
+ 0x29A9: "ER_NDB_BINLOG_GENERIC_MESSAGE",
+ 0x29AA: "ER_NDB_CONFLICT_GENERIC_MESSAGE",
+ 0x29AB: "ER_NDB_TRANS_DEPENDENCY_TRACKER_ERROR",
+ 0x29AC: "ER_NDB_CONFLICT_FN_PARSE_ERROR",
+ 0x29AD: "ER_NDB_CONFLICT_FN_SETUP_ERROR",
+ 0x29AE: "ER_NDB_BINLOG_FAILED_TO_GET_TABLE",
+ 0x29AF: "ER_NDB_BINLOG_NOT_LOGGING",
+ 0x29B0: "ER_NDB_BINLOG_CREATE_TABLE_EVENT_FAILED",
+ 0x29B1: "ER_NDB_BINLOG_CREATE_TABLE_EVENT_INFO",
+ 0x29B2: "ER_NDB_BINLOG_DISCOVER_TABLE_EVENT_INFO",
+ 0x29B3: "ER_NDB_BINLOG_BLOB_REQUIRES_PK",
+ 0x29B4: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB",
+ 0x29B5: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB_AND_CANT_DROP",
+ 0x29B6: "ER_NDB_BINLOG_CANT_CREATE_EVENT_IN_DB_DROPPED",
+ 0x29B7: "ER_NDB_BINLOG_DISCOVER_REUSING_OLD_EVENT_OPS",
+ 0x29B8: "ER_NDB_BINLOG_CREATING_NDBEVENTOPERATION_FAILED",
+ 0x29B9: "ER_NDB_BINLOG_CANT_CREATE_BLOB",
+ 0x29BA: "ER_NDB_BINLOG_NDBEVENT_EXECUTE_FAILED",
+ 0x29BB: "ER_NDB_CREATE_EVENT_OPS_LOGGING_INFO",
+ 0x29BC: "ER_NDB_BINLOG_CANT_DROP_EVENT_FROM_DB",
+ 0x29BD: "ER_NDB_TIMED_OUT_IN_DROP_TABLE",
+ 0x29BE: "ER_NDB_BINLOG_UNHANDLED_ERROR_FOR_TABLE",
+ 0x29BF: "ER_NDB_BINLOG_CLUSTER_FAILURE",
+ 0x29C0: "ER_NDB_BINLOG_UNKNOWN_NON_DATA_EVENT",
+ 0x29C1: "ER_NDB_BINLOG_INJECTOR_DISCARDING_ROW_EVENT_METADATA",
+ 0x29C2: "ER_NDB_REMAINING_OPEN_TABLES",
+ 0x29C3: "ER_NDB_REMAINING_OPEN_TABLE_INFO",
+ 0x29C4: "ER_NDB_COULD_NOT_GET_APPLY_STATUS_SHARE",
+ 0x29C5: "ER_NDB_BINLOG_SERVER_SHUTDOWN_DURING_NDB_CLUSTER_START",
+ 0x29C6: "ER_NDB_BINLOG_CLUSTER_RESTARTED_RESET_MASTER_SUGGESTED",
+ 0x29C7: "ER_NDB_BINLOG_CLUSTER_HAS_RECONNECTED",
+ 0x29C8: "ER_NDB_BINLOG_STARTING_LOG_AT_EPOCH",
+ 0x29C9: "ER_NDB_BINLOG_NDB_TABLES_WRITABLE",
+ 0x29CA: "ER_NDB_BINLOG_SHUTDOWN_DETECTED",
+ 0x29CB: "ER_NDB_BINLOG_LOST_SCHEMA_CONNECTION_WAITING",
+ 0x29CC: "ER_NDB_BINLOG_LOST_SCHEMA_CONNECTION_CONTINUING",
+ 0x29CD: "ER_NDB_BINLOG_ERROR_HANDLING_SCHEMA_EVENT",
+ 0x29CE: "ER_NDB_BINLOG_CANT_INJECT_APPLY_STATUS_WRITE_ROW",
+ 0x29CF: "ER_NDB_BINLOG_ERROR_DURING_GCI_ROLLBACK",
+ 0x29D0: "ER_NDB_BINLOG_ERROR_DURING_GCI_COMMIT",
+ 0x29D1: "ER_NDB_BINLOG_LATEST_TRX_IN_EPOCH_NOT_IN_BINLOG",
+ 0x29D2: "ER_NDB_BINLOG_RELEASING_EXTRA_SHARE_REFERENCES",
+ 0x29D3: "ER_NDB_BINLOG_REMAINING_OPEN_TABLES",
+ 0x29D4: "ER_NDB_BINLOG_REMAINING_OPEN_TABLE_INFO",
+ 0x29D5: "ER_TREE_CORRUPT_PARENT_SHOULD_POINT_AT_PARENT",
+ 0x29D6: "ER_TREE_CORRUPT_ROOT_SHOULD_BE_BLACK",
+ 0x29D7: "ER_TREE_CORRUPT_2_CONSECUTIVE_REDS",
+ 0x29D8: "ER_TREE_CORRUPT_RIGHT_IS_LEFT",
+ 0x29D9: "ER_TREE_CORRUPT_INCORRECT_BLACK_COUNT",
+ 0x29DA: "ER_WRONG_COUNT_FOR_ORIGIN",
+ 0x29DB: "ER_WRONG_COUNT_FOR_KEY",
+ 0x29DC: "ER_WRONG_COUNT_OF_ELEMENTS",
+ 0x29DD: "ER_RPL_ERROR_READING_SLAVE_WORKER_CONFIGURATION",
+ 0x29DE: "ER_RPL_ERROR_WRITING_SLAVE_WORKER_CONFIGURATION",
+ 0x29DF: "ER_RPL_FAILED_TO_OPEN_RELAY_LOG",
+ 0x29E0: "ER_RPL_WORKER_CANT_READ_RELAY_LOG",
+ 0x29E1: "ER_RPL_WORKER_CANT_FIND_NEXT_RELAY_LOG",
+ 0x29E2: "ER_RPL_MTS_SLAVE_COORDINATOR_HAS_WAITED",
+ 0x29E3: "ER_BINLOG_FAILED_TO_WRITE_DROP_FOR_TEMP_TABLES",
+ 0x29E4: "ER_BINLOG_OOM_WRITING_DELETE_WHILE_OPENING_HEAP_TABLE",
+ 0x29E5: "ER_FAILED_TO_REPAIR_TABLE",
+ 0x29E6: "ER_FAILED_TO_REMOVE_TEMP_TABLE",
+ 0x29E7: "ER_SYSTEM_TABLE_NOT_TRANSACTIONAL",
+ 0x29E8: "ER_RPL_ERROR_WRITING_MASTER_CONFIGURATION",
+ 0x29E9: "ER_RPL_ERROR_READING_MASTER_CONFIGURATION",
+ 0x29EA: "ER_RPL_SSL_INFO_IN_MASTER_INFO_IGNORED",
+ 0x29EB: "ER_PLUGIN_FAILED_DEINITIALIZATION",
+ 0x29EC: "ER_PLUGIN_HAS_NONZERO_REFCOUNT_AFTER_DEINITIALIZATION",
+ 0x29ED: "ER_PLUGIN_SHUTTING_DOWN_PLUGIN",
+ 0x29EE: "ER_PLUGIN_REGISTRATION_FAILED",
+ 0x29EF: "ER_PLUGIN_CANT_OPEN_PLUGIN_TABLE",
+ 0x29F0: "ER_PLUGIN_CANT_LOAD",
+ 0x29F1: "ER_PLUGIN_LOAD_PARAMETER_TOO_LONG",
+ 0x29F2: "ER_PLUGIN_FORCING_SHUTDOWN",
+ 0x29F3: "ER_PLUGIN_HAS_NONZERO_REFCOUNT_AFTER_SHUTDOWN",
+ 0x29F4: "ER_PLUGIN_UNKNOWN_VARIABLE_TYPE",
+ 0x29F5: "ER_PLUGIN_VARIABLE_SET_READ_ONLY",
+ 0x29F6: "ER_PLUGIN_VARIABLE_MISSING_NAME",
+ 0x29F7: "ER_PLUGIN_VARIABLE_NOT_ALLOCATED_THREAD_LOCAL",
+ 0x29F8: "ER_PLUGIN_OOM",
+ 0x29F9: "ER_PLUGIN_BAD_OPTIONS",
+ 0x29FA: "ER_PLUGIN_PARSING_OPTIONS_FAILED",
+ 0x29FB: "ER_PLUGIN_DISABLED",
+ 0x29FC: "ER_PLUGIN_HAS_CONFLICTING_SYSTEM_VARIABLES",
+ 0x29FD: "ER_PLUGIN_CANT_SET_PERSISTENT_OPTIONS",
+ 0x29FE: "ER_MY_NET_WRITE_FAILED_FALLING_BACK_ON_STDERR",
+ 0x29FF: "ER_RETRYING_REPAIR_WITHOUT_QUICK",
+ 0x2A00: "ER_RETRYING_REPAIR_WITH_KEYCACHE",
+ 0x2A01: "ER_FOUND_ROWS_WHILE_REPAIRING",
+ 0x2A02: "ER_ERROR_DURING_OPTIMIZE_TABLE",
+ 0x2A03: "ER_ERROR_ENABLING_KEYS",
+ 0x2A04: "ER_CHECKING_TABLE",
+ 0x2A05: "ER_RECOVERING_TABLE",
+ 0x2A06: "ER_CANT_CREATE_TABLE_SHARE_FROM_FRM",
+ 0x2A07: "ER_CANT_LOCK_TABLE",
+ 0x2A08: "ER_CANT_ALLOC_TABLE_OBJECT",
+ 0x2A09: "ER_CANT_CREATE_HANDLER_OBJECT_FOR_TABLE",
+ 0x2A0A: "ER_CANT_SET_HANDLER_REFERENCE_FOR_TABLE",
+ 0x2A0B: "ER_CANT_LOCK_TABLESPACE",
+ 0x2A0C: "ER_CANT_UPGRADE_GENERATED_COLUMNS_TO_DD",
+ 0x2A0D: "ER_DD_ERROR_CREATING_ENTRY",
+ 0x2A0E: "ER_DD_CANT_FETCH_TABLE_DATA",
+ 0x2A0F: "ER_DD_CANT_FIX_SE_DATA",
+ 0x2A10: "ER_DD_CANT_CREATE_SP",
+ 0x2A11: "ER_CANT_OPEN_DB_OPT_USING_DEFAULT_CHARSET",
+ 0x2A12: "ER_CANT_CREATE_CACHE_FOR_DB_OPT",
+ 0x2A13: "ER_CANT_IDENTIFY_CHARSET_USING_DEFAULT",
+ 0x2A14: "ER_DB_OPT_NOT_FOUND_USING_DEFAULT_CHARSET",
+ 0x2A15: "ER_EVENT_CANT_GET_TIMEZONE_FROM_FIELD",
+ 0x2A16: "ER_EVENT_CANT_FIND_TIMEZONE",
+ 0x2A17: "ER_EVENT_CANT_GET_CHARSET",
+ 0x2A18: "ER_EVENT_CANT_GET_COLLATION",
+ 0x2A19: "ER_EVENT_CANT_OPEN_TABLE_MYSQL_EVENT",
+ 0x2A1A: "ER_CANT_PARSE_STORED_ROUTINE_BODY",
+ 0x2A1B: "ER_CANT_OPEN_TABLE_MYSQL_PROC",
+ 0x2A1C: "ER_CANT_READ_TABLE_MYSQL_PROC",
+ 0x2A1D: "ER_FILE_EXISTS_DURING_UPGRADE",
+ 0x2A1E: "ER_CANT_OPEN_DATADIR_AFTER_UPGRADE_FAILURE",
+ 0x2A1F: "ER_CANT_SET_PATH_FOR",
+ 0x2A20: "ER_CANT_OPEN_DIR",
+ 0x2A21: "ER_NDB_EMPTY_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A22: "ER_NDB_CANT_PARSE_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A23: "ER_NDB_INVALID_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A24: "ER_NDB_DUPLICATE_NODEID_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A25: "ER_NDB_POOL_SIZE_MUST_MATCH_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A26: "ER_NDB_NODEID_NOT_FIRST_IN_NDB_CLUSTER_CONNECTION_POOL_NODEIDS",
+ 0x2A27: "ER_NDB_USING_NODEID",
+ 0x2A28: "ER_NDB_CANT_ALLOC_GLOBAL_NDB_CLUSTER_CONNECTION",
+ 0x2A29: "ER_NDB_CANT_ALLOC_GLOBAL_NDB_OBJECT",
+ 0x2A2A: "ER_NDB_USING_NODEID_LIST",
+ 0x2A2B: "ER_NDB_CANT_ALLOC_NDB_CLUSTER_CONNECTION",
+ 0x2A2C: "ER_NDB_STARTING_CONNECT_THREAD",
+ 0x2A2D: "ER_NDB_NODE_INFO",
+ 0x2A2E: "ER_NDB_CANT_START_CONNECT_THREAD",
+ 0x2A2F: "ER_NDB_GENERIC_ERROR",
+ 0x2A30: "ER_NDB_CPU_MASK_TOO_SHORT",
+ 0x2A31: "ER_EVENT_ERROR_CREATING_QUERY_TO_WRITE_TO_BINLOG",
+ 0x2A32: "ER_EVENT_SCHEDULER_ERROR_LOADING_FROM_DB",
+ 0x2A33: "ER_EVENT_SCHEDULER_ERROR_GETTING_EVENT_OBJECT",
+ 0x2A34: "ER_EVENT_SCHEDULER_GOT_BAD_DATA_FROM_TABLE",
+ 0x2A35: "ER_EVENT_CANT_GET_LOCK_FOR_DROPPING_EVENT",
+ 0x2A36: "ER_EVENT_UNABLE_TO_DROP_EVENT",
+ 0x2A37: "ER_BINLOG_ATTACHING_THREAD_MEMORY_FINALLY_AVAILABLE",
+ 0x2A38: "ER_BINLOG_CANT_RESIZE_CACHE",
+ 0x2A39: "ER_BINLOG_FILE_BEING_READ_NOT_PURGED",
+ 0x2A3A: "ER_BINLOG_IO_ERROR_READING_HEADER",
+ 0x2A3B: "ER_BINLOG_CANT_OPEN_LOG",
+ 0x2A3C: "ER_BINLOG_CANT_CREATE_CACHE_FOR_LOG",
+ 0x2A3D: "ER_BINLOG_FILE_EXTENSION_NUMBER_EXHAUSTED",
+ 0x2A3E: "ER_BINLOG_FILE_NAME_TOO_LONG",
+ 0x2A3F: "ER_BINLOG_FILE_EXTENSION_NUMBER_RUNNING_LOW",
+ 0x2A40: "ER_BINLOG_CANT_OPEN_FOR_LOGGING",
+ 0x2A41: "ER_BINLOG_FAILED_TO_SYNC_INDEX_FILE",
+ 0x2A42: "ER_BINLOG_ERROR_READING_GTIDS_FROM_RELAY_LOG",
+ 0x2A43: "ER_BINLOG_EVENTS_READ_FROM_RELAY_LOG_INFO",
+ 0x2A44: "ER_BINLOG_ERROR_READING_GTIDS_FROM_BINARY_LOG",
+ 0x2A45: "ER_BINLOG_EVENTS_READ_FROM_BINLOG_INFO",
+ 0x2A46: "ER_BINLOG_CANT_GENERATE_NEW_FILE_NAME",
+ 0x2A47: "ER_BINLOG_FAILED_TO_SYNC_INDEX_FILE_IN_OPEN",
+ 0x2A48: "ER_BINLOG_CANT_USE_FOR_LOGGING",
+ 0x2A49: "ER_BINLOG_FAILED_TO_CLOSE_INDEX_FILE_WHILE_REBUILDING",
+ 0x2A4A: "ER_BINLOG_FAILED_TO_DELETE_INDEX_FILE_WHILE_REBUILDING",
+ 0x2A4B: "ER_BINLOG_FAILED_TO_RENAME_INDEX_FILE_WHILE_REBUILDING",
+ 0x2A4C: "ER_BINLOG_FAILED_TO_OPEN_INDEX_FILE_AFTER_REBUILDING",
+ 0x2A4D: "ER_BINLOG_CANT_APPEND_LOG_TO_TMP_INDEX",
+ 0x2A4E: "ER_BINLOG_CANT_LOCATE_OLD_BINLOG_OR_RELAY_LOG_FILES",
+ 0x2A4F: "ER_BINLOG_CANT_DELETE_FILE",
+ 0x2A50: "ER_BINLOG_CANT_SET_TMP_INDEX_NAME",
+ 0x2A51: "ER_BINLOG_FAILED_TO_OPEN_TEMPORARY_INDEX_FILE",
+ 0x2A52: "ER_BINLOG_ERROR_GETTING_NEXT_LOG_FROM_INDEX",
+ 0x2A53: "ER_BINLOG_CANT_OPEN_TMP_INDEX",
+ 0x2A54: "ER_BINLOG_CANT_COPY_INDEX_TO_TMP",
+ 0x2A55: "ER_BINLOG_CANT_CLOSE_TMP_INDEX",
+ 0x2A56: "ER_BINLOG_CANT_MOVE_TMP_TO_INDEX",
+ 0x2A57: "ER_BINLOG_PURGE_LOGS_CALLED_WITH_FILE_NOT_IN_INDEX",
+ 0x2A58: "ER_BINLOG_PURGE_LOGS_CANT_SYNC_INDEX_FILE",
+ 0x2A59: "ER_BINLOG_PURGE_LOGS_CANT_COPY_TO_REGISTER_FILE",
+ 0x2A5A: "ER_BINLOG_PURGE_LOGS_CANT_FLUSH_REGISTER_FILE",
+ 0x2A5B: "ER_BINLOG_PURGE_LOGS_CANT_UPDATE_INDEX_FILE",
+ 0x2A5C: "ER_BINLOG_PURGE_LOGS_FAILED_TO_PURGE_LOG",
+ 0x2A5D: "ER_BINLOG_FAILED_TO_SET_PURGE_INDEX_FILE_NAME",
+ 0x2A5E: "ER_BINLOG_FAILED_TO_OPEN_REGISTER_FILE",
+ 0x2A5F: "ER_BINLOG_FAILED_TO_REINIT_REGISTER_FILE",
+ 0x2A60: "ER_BINLOG_FAILED_TO_READ_REGISTER_FILE",
+ 0x2A61: "ER_CANT_STAT_FILE",
+ 0x2A62: "ER_BINLOG_CANT_DELETE_LOG_FILE_DOES_INDEX_MATCH_FILES",
+ 0x2A63: "ER_BINLOG_CANT_DELETE_FILE_AND_READ_BINLOG_INDEX",
+ 0x2A64: "ER_BINLOG_FAILED_TO_DELETE_LOG_FILE",
+ 0x2A65: "ER_BINLOG_LOGGING_INCIDENT_TO_STOP_SLAVES",
+ 0x2A66: "ER_BINLOG_CANT_FIND_LOG_IN_INDEX",
+ 0x2A67: "ER_BINLOG_RECOVERING_AFTER_CRASH_USING",
+ 0x2A68: "ER_BINLOG_CANT_OPEN_CRASHED_BINLOG",
+ 0x2A69: "ER_BINLOG_CANT_TRIM_CRASHED_BINLOG",
+ 0x2A6A: "ER_BINLOG_CRASHED_BINLOG_TRIMMED",
+ 0x2A6B: "ER_BINLOG_CANT_CLEAR_IN_USE_FLAG_FOR_CRASHED_BINLOG",
+ 0x2A6C: "ER_BINLOG_FAILED_TO_RUN_AFTER_SYNC_HOOK",
+ 0x2A6D: "ER_TURNING_LOGGING_OFF_FOR_THE_DURATION",
+ 0x2A6E: "ER_BINLOG_FAILED_TO_RUN_AFTER_FLUSH_HOOK",
+ 0x2A6F: "ER_BINLOG_CRASH_RECOVERY_FAILED",
+ 0x2A70: "ER_BINLOG_WARNING_SUPPRESSED",
+ 0x2A71: "ER_NDB_LOG_ENTRY",
+ 0x2A72: "ER_NDB_LOG_ENTRY_WITH_PREFIX",
+ 0x2A73: "ER_NDB_BINLOG_CANT_CREATE_PURGE_THD",
+ 0x2A74: "ER_INNODB_UNKNOWN_COLLATION",
+ 0x2A75: "ER_INNODB_INVALID_LOG_GROUP_HOME_DIR",
+ 0x2A76: "ER_INNODB_INVALID_INNODB_UNDO_DIRECTORY",
+ 0x2A77: "ER_INNODB_ILLEGAL_COLON_IN_POOL",
+ 0x2A78: "ER_INNODB_INVALID_PAGE_SIZE",
+ 0x2A79: "ER_INNODB_DIRTY_WATER_MARK_NOT_LOW",
+ 0x2A7A: "ER_INNODB_IO_CAPACITY_EXCEEDS_MAX",
+ 0x2A7B: "ER_INNODB_FILES_SAME",
+ 0x2A7C: "ER_INNODB_UNREGISTERED_TRX_ACTIVE",
+ 0x2A7D: "ER_INNODB_CLOSING_CONNECTION_ROLLS_BACK",
+ 0x2A7E: "ER_INNODB_TRX_XLATION_TABLE_OOM",
+ 0x2A7F: "ER_INNODB_CANT_FIND_INDEX_IN_INNODB_DD",
+ 0x2A80: "ER_INNODB_INDEX_COLUMN_INFO_UNLIKE_MYSQLS",
+ 0x2A81: "ER_INNODB_CANT_OPEN_TABLE",
+ 0x2A82: "ER_INNODB_CANT_BUILD_INDEX_XLATION_TABLE_FOR",
+ 0x2A83: "ER_INNODB_PK_NOT_IN_MYSQL",
+ 0x2A84: "ER_INNODB_PK_ONLY_IN_MYSQL",
+ 0x2A85: "ER_INNODB_CLUSTERED_INDEX_PRIVATE",
+ 0x2A86: "ER_INNODB_PARTITION_TABLE_LOWERCASED",
+ 0x2A87: "ER_ERRMSG_REPLACEMENT_DODGY",
+ 0x2A88: "ER_ERRMSG_REPLACEMENTS_FAILED",
+ 0x2A89: "ER_NPIPE_CANT_CREATE",
+ 0x2A8A: "ER_PARTITION_MOVE_CREATED_DUPLICATE_ROW_PLEASE_FIX",
+ 0x2A8B: "ER_AUDIT_CANT_ABORT_COMMAND",
+ 0x2A8C: "ER_AUDIT_CANT_ABORT_EVENT",
+ 0x2A8D: "ER_AUDIT_WARNING",
+ 0x2A8E: "ER_NDB_NUMBER_OF_CHANNELS",
+ 0x2A8F: "ER_NDB_SLAVE_PARALLEL_WORKERS",
+ 0x2A90: "ER_NDB_DISTRIBUTING_ERR",
+ 0x2A91: "ER_RPL_SLAVE_INSECURE_CHANGE_MASTER",
+ 0x2A92: "ER_RPL_SLAVE_FLUSH_RELAY_LOGS_NOT_ALLOWED",
+ 0x2A93: "ER_RPL_SLAVE_INCORRECT_CHANNEL",
+ 0x2A94: "ER_FAILED_TO_FIND_DL_ENTRY",
+ 0x2A95: "ER_FAILED_TO_OPEN_SHARED_LIBRARY",
+ 0x2A96: "ER_THREAD_PRIORITY_IGNORED",
+ 0x2A97: "ER_BINLOG_CACHE_SIZE_TOO_LARGE",
+ 0x2A98: "ER_BINLOG_STMT_CACHE_SIZE_TOO_LARGE",
+ 0x2A99: "ER_FAILED_TO_GENERATE_UNIQUE_LOGFILE",
+ 0x2A9A: "ER_FAILED_TO_READ_FILE",
+ 0x2A9B: "ER_FAILED_TO_WRITE_TO_FILE",
+ 0x2A9C: "ER_BINLOG_UNSAFE_MESSAGE_AND_STATEMENT",
+ 0x2A9D: "ER_FORCE_CLOSE_THREAD",
+ 0x2A9E: "ER_SERVER_SHUTDOWN_COMPLETE",
+ 0x2A9F: "ER_RPL_CANT_HAVE_SAME_BASENAME",
+ 0x2AA0: "ER_RPL_GTID_MODE_REQUIRES_ENFORCE_GTID_CONSISTENCY_ON",
+ 0x2AA1: "ER_WARN_NO_SERVERID_SPECIFIED",
+ 0x2AA2: "ER_ABORTING_USER_CONNECTION",
+ 0x2AA3: "ER_SQL_MODE_MERGED_WITH_STRICT_MODE",
+ 0x2AA4: "ER_GTID_PURGED_WAS_UPDATED",
+ 0x2AA5: "ER_GTID_EXECUTED_WAS_UPDATED",
+ 0x2AA6: "ER_DEPRECATE_MSG_WITH_REPLACEMENT",
+ 0x2AA7: "ER_TRG_CREATION_CTX_NOT_SET",
+ 0x2AA8: "ER_FILE_HAS_OLD_FORMAT",
+ 0x2AA9: "ER_VIEW_CREATION_CTX_NOT_SET",
+ 0x2AAA: "ER_TABLE_NAME_CAUSES_TOO_LONG_PATH",
+ 0x2AAB: "ER_TABLE_UPGRADE_REQUIRED",
+ 0x2AAC: "ER_GET_ERRNO_FROM_STORAGE_ENGINE",
+ 0x2AAD: "ER_ACCESS_DENIED_ERROR_WITHOUT_PASSWORD",
+ 0x2AAE: "ER_ACCESS_DENIED_ERROR_WITH_PASSWORD",
+ 0x2AAF: "ER_ACCESS_DENIED_FOR_USER_ACCOUNT_LOCKED",
+ 0x2AB0: "ER_MUST_CHANGE_EXPIRED_PASSWORD",
+ 0x2AB1: "ER_SYSTEM_TABLES_NOT_SUPPORTED_BY_STORAGE_ENGINE",
+ 0x2AB2: "ER_FILESORT_TERMINATED",
+ 0x2AB3: "ER_SERVER_STARTUP_MSG",
+ 0x2AB4: "ER_FAILED_TO_FIND_LOCALE_NAME",
+ 0x2AB5: "ER_FAILED_TO_FIND_COLLATION_NAME",
+ 0x2AB6: "ER_SERVER_OUT_OF_RESOURCES",
+ 0x2AB7: "ER_SERVER_OUTOFMEMORY",
+ 0x2AB8: "ER_INVALID_COLLATION_FOR_CHARSET",
+ 0x2AB9: "ER_CANT_START_ERROR_LOG_SERVICE",
+ 0x2ABA: "ER_CREATING_NEW_UUID_FIRST_START",
+ 0x2ABB: "ER_FAILED_TO_GET_ABSOLUTE_PATH",
+ 0x2ABC: "ER_PERFSCHEMA_COMPONENTS_INFRASTRUCTURE_BOOTSTRAP",
+ 0x2ABD: "ER_PERFSCHEMA_COMPONENTS_INFRASTRUCTURE_SHUTDOWN",
+ 0x2ABE: "ER_DUP_FD_OPEN_FAILED",
+ 0x2ABF: "ER_SYSTEM_VIEW_INIT_FAILED",
+ 0x2AC0: "ER_RESOURCE_GROUP_POST_INIT_FAILED",
+ 0x2AC1: "ER_RESOURCE_GROUP_SUBSYSTEM_INIT_FAILED",
+ 0x2AC2: "ER_FAILED_START_MYSQLD_DAEMON",
+ 0x2AC3: "ER_CANNOT_CHANGE_TO_ROOT_DIR",
+ 0x2AC4: "ER_PERSISTENT_PRIVILEGES_BOOTSTRAP",
+ 0x2AC5: "ER_BASEDIR_SET_TO",
+ 0x2AC6: "ER_RPL_FILTER_ADD_WILD_DO_TABLE_FAILED",
+ 0x2AC7: "ER_RPL_FILTER_ADD_WILD_IGNORE_TABLE_FAILED",
+ 0x2AC8: "ER_PRIVILEGE_SYSTEM_INIT_FAILED",
+ 0x2AC9: "ER_CANNOT_SET_LOG_ERROR_SERVICES",
+ 0x2ACA: "ER_PERFSCHEMA_TABLES_INIT_FAILED",
+ 0x2ACB: "ER_TX_EXTRACTION_ALGORITHM_FOR_BINLOG_TX_DEPEDENCY_TRACKING",
+ 0x2ACC: "ER_INVALID_REPLICATION_TIMESTAMPS",
+ 0x2ACD: "ER_RPL_TIMESTAMPS_RETURNED_TO_NORMAL",
+ 0x2ACE: "ER_BINLOG_FILE_OPEN_FAILED",
+ 0x2ACF: "ER_BINLOG_EVENT_WRITE_TO_STMT_CACHE_FAILED",
+ 0x2AD0: "ER_SLAVE_RELAY_LOG_TRUNCATE_INFO",
+ 0x2AD1: "ER_SLAVE_RELAY_LOG_PURGE_FAILED",
+ 0x2AD2: "ER_RPL_SLAVE_FILTER_CREATE_FAILED",
+ 0x2AD3: "ER_RPL_SLAVE_GLOBAL_FILTERS_COPY_FAILED",
+ 0x2AD4: "ER_RPL_SLAVE_RESET_FILTER_OPTIONS",
+ 0x2AD5: "ER_MISSING_GRANT_SYSTEM_TABLE",
+ 0x2AD6: "ER_MISSING_ACL_SYSTEM_TABLE",
+ 0x2AD7: "ER_ANONYMOUS_AUTH_ID_NOT_ALLOWED_IN_MANDATORY_ROLES",
+ 0x2AD8: "ER_UNKNOWN_AUTH_ID_IN_MANDATORY_ROLE",
+ 0x2AD9: "ER_WRITE_ROW_TO_PARTITION_FAILED",
+ 0x2ADA: "ER_RESOURCE_GROUP_METADATA_UPDATE_SKIPPED",
+ 0x2ADB: "ER_FAILED_TO_PERSIST_RESOURCE_GROUP_METADATA",
+ 0x2ADC: "ER_FAILED_TO_DESERIALIZE_RESOURCE_GROUP",
+ 0x2ADD: "ER_FAILED_TO_UPDATE_RESOURCE_GROUP",
+ 0x2ADE: "ER_RESOURCE_GROUP_VALIDATION_FAILED",
+ 0x2ADF: "ER_FAILED_TO_ALLOCATE_MEMORY_FOR_RESOURCE_GROUP",
+ 0x2AE0: "ER_FAILED_TO_ALLOCATE_MEMORY_FOR_RESOURCE_GROUP_HASH",
+ 0x2AE1: "ER_FAILED_TO_ADD_RESOURCE_GROUP_TO_MAP",
+ 0x2AE2: "ER_RESOURCE_GROUP_IS_DISABLED",
+ 0x2AE3: "ER_FAILED_TO_APPLY_RESOURCE_GROUP_CONTROLLER",
+ 0x2AE4: "ER_FAILED_TO_ACQUIRE_LOCK_ON_RESOURCE_GROUP",
+ 0x2AE5: "ER_PFS_NOTIFICATION_FUNCTION_REGISTER_FAILED",
+ 0x2AE6: "ER_RES_GRP_SET_THR_AFFINITY_FAILED",
+ 0x2AE7: "ER_RES_GRP_SET_THR_AFFINITY_TO_CPUS_FAILED",
+ 0x2AE8: "ER_RES_GRP_THD_UNBIND_FROM_CPU_FAILED",
+ 0x2AE9: "ER_RES_GRP_SET_THREAD_PRIORITY_FAILED",
+ 0x2AEA: "ER_RES_GRP_FAILED_TO_DETERMINE_NICE_CAPABILITY",
+ 0x2AEB: "ER_RES_GRP_FAILED_TO_GET_THREAD_HANDLE",
+ 0x2AEC: "ER_RES_GRP_GET_THREAD_PRIO_NOT_SUPPORTED",
+ 0x2AED: "ER_RES_GRP_FAILED_DETERMINE_CPU_COUNT",
+ 0x2AEE: "ER_RES_GRP_FEATURE_NOT_AVAILABLE",
+ 0x2AEF: "ER_RES_GRP_INVALID_THREAD_PRIORITY",
+ 0x2AF0: "ER_RES_GRP_SOLARIS_PROCESSOR_BIND_TO_CPUID_FAILED",
+ 0x2AF1: "ER_RES_GRP_SOLARIS_PROCESSOR_BIND_TO_THREAD_FAILED",
+ 0x2AF2: "ER_RES_GRP_SOLARIS_PROCESSOR_AFFINITY_FAILED",
+ 0x2AF3: "ER_DD_UPGRADE_RENAME_IDX_STATS_FILE_FAILED",
+ 0x2AF4: "ER_DD_UPGRADE_DD_OPEN_FAILED",
+ 0x2AF5: "ER_DD_UPGRADE_FAILED_TO_FETCH_TABLESPACES",
+ 0x2AF6: "ER_DD_UPGRADE_FAILED_TO_ACQUIRE_TABLESPACE",
+ 0x2AF7: "ER_DD_UPGRADE_FAILED_TO_RESOLVE_TABLESPACE_ENGINE",
+ 0x2AF8: "ER_FAILED_TO_CREATE_SDI_FOR_TABLESPACE",
+ 0x2AF9: "ER_FAILED_TO_STORE_SDI_FOR_TABLESPACE",
+ 0x2AFA: "ER_DD_UPGRADE_FAILED_TO_FETCH_TABLES",
+ 0x2AFB: "ER_DD_UPGRADE_DD_POPULATED",
+ 0x2AFC: "ER_DD_UPGRADE_INFO_FILE_OPEN_FAILED",
+ 0x2AFD: "ER_DD_UPGRADE_INFO_FILE_CLOSE_FAILED",
+ 0x2AFE: "ER_DD_UPGRADE_TABLESPACE_MIGRATION_FAILED",
+ 0x2AFF: "ER_DD_UPGRADE_FAILED_TO_CREATE_TABLE_STATS",
+ 0x2B00: "ER_DD_UPGRADE_TABLE_STATS_MIGRATE_COMPLETED",
+ 0x2B01: "ER_DD_UPGRADE_FAILED_TO_CREATE_INDEX_STATS",
+ 0x2B02: "ER_DD_UPGRADE_INDEX_STATS_MIGRATE_COMPLETED",
+ 0x2B03: "ER_DD_UPGRADE_FAILED_FIND_VALID_DATA_DIR",
+ 0x2B04: "ER_DD_UPGRADE_START",
+ 0x2B05: "ER_DD_UPGRADE_FAILED_INIT_DD_SE",
+ 0x2B06: "ER_DD_UPGRADE_FOUND_PARTIALLY_UPGRADED_DD_ABORT",
+ 0x2B07: "ER_DD_UPGRADE_FOUND_PARTIALLY_UPGRADED_DD_CONTINUE",
+ 0x2B08: "ER_DD_UPGRADE_SE_LOGS_FAILED",
+ 0x2B09: "ER_DD_UPGRADE_SDI_INFO_UPDATE_FAILED",
+ 0x2B0A: "ER_SKIP_UPDATING_METADATA_IN_SE_RO_MODE",
+ 0x2B0B: "ER_CREATED_SYSTEM_WITH_VERSION",
+ 0x2B0C: "ER_UNKNOWN_ERROR_DETECTED_IN_SE",
+ 0x2B0D: "ER_READ_LOG_EVENT_FAILED",
+ 0x2B0E: "ER_ROW_DATA_TOO_BIG_TO_WRITE_IN_BINLOG",
+ 0x2B0F: "ER_FAILED_TO_CONSTRUCT_DROP_EVENT_QUERY",
+ 0x2B10: "ER_FAILED_TO_BINLOG_DROP_EVENT",
+ 0x2B11: "ER_FAILED_TO_START_SLAVE_THREAD",
+ 0x2B12: "ER_RPL_IO_THREAD_KILLED",
+ 0x2B13: "ER_SLAVE_RECONNECT_FAILED",
+ 0x2B14: "ER_SLAVE_KILLED_AFTER_RECONNECT",
+ 0x2B15: "ER_SLAVE_NOT_STARTED_ON_SOME_CHANNELS",
+ 0x2B16: "ER_FAILED_TO_ADD_RPL_FILTER",
+ 0x2B17: "ER_PER_CHANNEL_RPL_FILTER_CONF_FOR_GRP_RPL",
+ 0x2B18: "ER_RPL_FILTERS_NOT_ATTACHED_TO_CHANNEL",
+ 0x2B19: "ER_FAILED_TO_BUILD_DO_AND_IGNORE_TABLE_HASHES",
+ 0x2B1A: "ER_CLONE_PLUGIN_NOT_LOADED",
+ 0x2B1B: "ER_CLONE_HANDLER_EXISTS",
+ 0x2B1C: "ER_FAILED_TO_CREATE_CLONE_HANDLER",
+ 0x2B1D: "ER_CYCLE_TIMER_IS_NOT_AVAILABLE",
+ 0x2B1E: "ER_NANOSECOND_TIMER_IS_NOT_AVAILABLE",
+ 0x2B1F: "ER_MICROSECOND_TIMER_IS_NOT_AVAILABLE",
+ 0x2B20: "ER_PFS_MALLOC_ARRAY_OVERFLOW",
+ 0x2B21: "ER_PFS_MALLOC_ARRAY_OOM",
+ 0x2B22: "ER_INNODB_FAILED_TO_FIND_IDX_WITH_KEY_NO",
+ 0x2B23: "ER_INNODB_FAILED_TO_FIND_IDX",
+ 0x2B24: "ER_INNODB_FAILED_TO_FIND_IDX_FROM_DICT_CACHE",
+ 0x2B25: "ER_INNODB_ACTIVE_INDEX_CHANGE_FAILED",
+ 0x2B26: "ER_INNODB_DIFF_IN_REF_LEN",
+ 0x2B27: "ER_WRONG_TYPE_FOR_COLUMN_PREFIX_IDX_FLD",
+ 0x2B28: "ER_INNODB_CANNOT_CREATE_TABLE",
+ 0x2B29: "ER_INNODB_INTERNAL_INDEX",
+ 0x2B2A: "ER_INNODB_IDX_CNT_MORE_THAN_DEFINED_IN_MYSQL",
+ 0x2B2B: "ER_INNODB_IDX_CNT_FEWER_THAN_DEFINED_IN_MYSQL",
+ 0x2B2C: "ER_INNODB_IDX_COLUMN_CNT_DIFF",
+ 0x2B2D: "ER_INNODB_USE_MONITOR_GROUP_NAME",
+ 0x2B2E: "ER_INNODB_MONITOR_DEFAULT_VALUE_NOT_DEFINED",
+ 0x2B2F: "ER_INNODB_MONITOR_IS_ENABLED",
+ 0x2B30: "ER_INNODB_INVALID_MONITOR_COUNTER_NAME",
+ 0x2B31: "ER_WIN_LOAD_LIBRARY_FAILED",
+ 0x2B32: "ER_PARTITION_HANDLER_ADMIN_MSG",
+ 0x2B33: "ER_RPL_RLI_INIT_INFO_MSG",
+ 0x2B34: "ER_DD_UPGRADE_TABLE_INTACT_ERROR",
+ 0x2B35: "ER_SERVER_INIT_COMPILED_IN_COMMANDS",
+ 0x2B36: "ER_MYISAM_CHECK_METHOD_ERROR",
+ 0x2B37: "ER_MYISAM_CRASHED_ERROR",
+ 0x2B38: "ER_WAITPID_FAILED",
+ 0x2B39: "ER_FAILED_TO_FIND_MYSQLD_STATUS",
+ 0x2B3A: "ER_INNODB_ERROR_LOGGER_MSG",
+ 0x2B3B: "ER_INNODB_ERROR_LOGGER_FATAL_MSG",
+ 0x2B3C: "ER_DEPRECATED_SYNTAX_WITH_REPLACEMENT",
+ 0x2B3D: "ER_DEPRECATED_SYNTAX_NO_REPLACEMENT",
+ 0x2B3E: "ER_DEPRECATE_MSG_NO_REPLACEMENT",
+ 0x2B3F: "ER_LOG_PRINTF_MSG",
+ 0x2B40: "ER_BINLOG_LOGGING_NOT_POSSIBLE",
+ 0x2B41: "ER_FAILED_TO_SET_PERSISTED_OPTIONS",
+ 0x2B42: "ER_COMPONENTS_FAILED_TO_ACQUIRE_SERVICE_IMPLEMENTATION",
+ 0x2B43: "ER_RES_GRP_INVALID_VCPU_RANGE",
+ 0x2B44: "ER_RES_GRP_INVALID_VCPU_ID",
+ 0x2B45: "ER_ERROR_DURING_FLUSH_LOG_COMMIT_PHASE",
+ 0x2B46: "ER_DROP_DATABASE_FAILED_RMDIR_MANUALLY",
+ 0x2B47: "ER_EXPIRE_LOGS_DAYS_IGNORED",
+ 0x2B48: "ER_BINLOG_MALFORMED_OR_OLD_RELAY_LOG",
+ 0x2B49: "ER_DD_UPGRADE_VIEW_COLUMN_NAME_TOO_LONG",
+ 0x2B4A: "ER_TABLE_NEEDS_DUMP_UPGRADE",
+ 0x2B4B: "ER_DD_UPGRADE_FAILED_TO_UPDATE_VER_NO_IN_TABLESPACE",
+ 0x2B4C: "ER_KEYRING_MIGRATION_FAILED",
+ 0x2B4D: "ER_KEYRING_MIGRATION_SUCCESSFUL",
+ 0x2B4E: "ER_RESTART_RECEIVED_INFO",
+ 0x2B4F: "ER_LCTN_CHANGED",
+ 0x2B50: "ER_DD_INITIALIZE",
+ 0x2B51: "ER_DD_RESTART",
+ 0x2B52: "ER_DD_UPGRADE",
+ 0x2B53: "ER_DD_UPGRADE_OFF",
+ 0x2B54: "ER_DD_UPGRADE_VERSION_NOT_SUPPORTED",
+ 0x2B55: "ER_DD_UPGRADE_SCHEMA_UNAVAILABLE",
+ 0x2B56: "ER_DD_MINOR_DOWNGRADE",
+ 0x2B57: "ER_DD_MINOR_DOWNGRADE_VERSION_NOT_SUPPORTED",
+ 0x2B58: "ER_DD_NO_VERSION_FOUND",
+ 0x2B59: "ER_THREAD_POOL_NOT_SUPPORTED_ON_PLATFORM",
+ 0x2B5A: "ER_THREAD_POOL_SIZE_TOO_LOW",
+ 0x2B5B: "ER_THREAD_POOL_SIZE_TOO_HIGH",
+ 0x2B5C: "ER_THREAD_POOL_ALGORITHM_INVALID",
+ 0x2B5D: "ER_THREAD_POOL_INVALID_STALL_LIMIT",
+ 0x2B5E: "ER_THREAD_POOL_INVALID_PRIO_KICKUP_TIMER",
+ 0x2B5F: "ER_THREAD_POOL_MAX_UNUSED_THREADS_INVALID",
+ 0x2B60: "ER_THREAD_POOL_CON_HANDLER_INIT_FAILED",
+ 0x2B61: "ER_THREAD_POOL_INIT_FAILED",
+ 0x2B62: "ER_THREAD_POOL_PLUGIN_STARTED",
+ 0x2B63: "ER_THREAD_POOL_CANNOT_SET_THREAD_SPECIFIC_DATA",
+ 0x2B64: "ER_THREAD_POOL_FAILED_TO_CREATE_CONNECT_HANDLER_THD",
+ 0x2B65: "ER_THREAD_POOL_FAILED_TO_CREATE_THD_AND_AUTH_CONN",
+ 0x2B66: "ER_THREAD_POOL_FAILED_PROCESS_CONNECT_EVENT",
+ 0x2B67: "ER_THREAD_POOL_FAILED_TO_CREATE_POOL",
+ 0x2B68: "ER_THREAD_POOL_RATE_LIMITED_ERROR_MSGS",
+ 0x2B69: "ER_TRHEAD_POOL_LOW_LEVEL_INIT_FAILED",
+ 0x2B6A: "ER_THREAD_POOL_LOW_LEVEL_REARM_FAILED",
+ 0x2B6B: "ER_THREAD_POOL_BUFFER_TOO_SMALL",
+ 0x2B6C: "ER_MECAB_NOT_SUPPORTED",
+ 0x2B6D: "ER_MECAB_NOT_VERIFIED",
+ 0x2B6E: "ER_MECAB_CREATING_MODEL",
+ 0x2B6F: "ER_MECAB_FAILED_TO_CREATE_MODEL",
+ 0x2B70: "ER_MECAB_FAILED_TO_CREATE_TRIGGER",
+ 0x2B71: "ER_MECAB_UNSUPPORTED_CHARSET",
+ 0x2B72: "ER_MECAB_CHARSET_LOADED",
+ 0x2B73: "ER_MECAB_PARSE_FAILED",
+ 0x2B74: "ER_MECAB_OOM_WHILE_PARSING_TEXT",
+ 0x2B75: "ER_MECAB_CREATE_LATTICE_FAILED",
+ 0x2B76: "ER_SEMISYNC_TRACE_ENTER_FUNC",
+ 0x2B77: "ER_SEMISYNC_TRACE_EXIT_WITH_INT_EXIT_CODE",
+ 0x2B78: "ER_SEMISYNC_TRACE_EXIT_WITH_BOOL_EXIT_CODE",
+ 0x2B79: "ER_SEMISYNC_TRACE_EXIT",
+ 0x2B7A: "ER_SEMISYNC_RPL_INIT_FOR_TRX",
+ 0x2B7B: "ER_SEMISYNC_FAILED_TO_ALLOCATE_TRX_NODE",
+ 0x2B7C: "ER_SEMISYNC_BINLOG_WRITE_OUT_OF_ORDER",
+ 0x2B7D: "ER_SEMISYNC_INSERT_LOG_INFO_IN_ENTRY",
+ 0x2B7E: "ER_SEMISYNC_PROBE_LOG_INFO_IN_ENTRY",
+ 0x2B7F: "ER_SEMISYNC_CLEARED_ALL_ACTIVE_TRANSACTION_NODES",
+ 0x2B80: "ER_SEMISYNC_CLEARED_ACTIVE_TRANSACTION_TILL_POS",
+ 0x2B81: "ER_SEMISYNC_REPLY_MAGIC_NO_ERROR",
+ 0x2B82: "ER_SEMISYNC_REPLY_PKT_LENGTH_TOO_SMALL",
+ 0x2B83: "ER_SEMISYNC_REPLY_BINLOG_FILE_TOO_LARGE",
+ 0x2B84: "ER_SEMISYNC_SERVER_REPLY",
+ 0x2B85: "ER_SEMISYNC_FUNCTION_CALLED_TWICE",
+ 0x2B86: "ER_SEMISYNC_RPL_ENABLED_ON_MASTER",
+ 0x2B87: "ER_SEMISYNC_MASTER_OOM",
+ 0x2B88: "ER_SEMISYNC_DISABLED_ON_MASTER",
+ 0x2B89: "ER_SEMISYNC_FORCED_SHUTDOWN",
+ 0x2B8A: "ER_SEMISYNC_MASTER_GOT_REPLY_AT_POS",
+ 0x2B8B: "ER_SEMISYNC_MASTER_SIGNAL_ALL_WAITING_THREADS",
+ 0x2B8C: "ER_SEMISYNC_MASTER_TRX_WAIT_POS",
+ 0x2B8D: "ER_SEMISYNC_BINLOG_REPLY_IS_AHEAD",
+ 0x2B8E: "ER_SEMISYNC_MOVE_BACK_WAIT_POS",
+ 0x2B8F: "ER_SEMISYNC_INIT_WAIT_POS",
+ 0x2B90: "ER_SEMISYNC_WAIT_TIME_FOR_BINLOG_SENT",
+ 0x2B91: "ER_SEMISYNC_WAIT_FOR_BINLOG_TIMEDOUT",
+ 0x2B92: "ER_SEMISYNC_WAIT_TIME_ASSESSMENT_FOR_COMMIT_TRX_FAILED",
+ 0x2B93: "ER_SEMISYNC_RPL_SWITCHED_OFF",
+ 0x2B94: "ER_SEMISYNC_RPL_SWITCHED_ON",
+ 0x2B95: "ER_SEMISYNC_NO_SPACE_IN_THE_PKT",
+ 0x2B96: "ER_SEMISYNC_SYNC_HEADER_UPDATE_INFO",
+ 0x2B97: "ER_SEMISYNC_FAILED_TO_INSERT_TRX_NODE",
+ 0x2B98: "ER_SEMISYNC_TRX_SKIPPED_AT_POS",
+ 0x2B99: "ER_SEMISYNC_MASTER_FAILED_ON_NET_FLUSH",
+ 0x2B9A: "ER_SEMISYNC_RECEIVED_ACK_IS_SMALLER",
+ 0x2B9B: "ER_SEMISYNC_ADD_ACK_TO_SLOT",
+ 0x2B9C: "ER_SEMISYNC_UPDATE_EXISTING_SLAVE_ACK",
+ 0x2B9D: "ER_SEMISYNC_FAILED_TO_START_ACK_RECEIVER_THD",
+ 0x2B9E: "ER_SEMISYNC_STARTING_ACK_RECEIVER_THD",
+ 0x2B9F: "ER_SEMISYNC_FAILED_TO_WAIT_ON_DUMP_SOCKET",
+ 0x2BA0: "ER_SEMISYNC_STOPPING_ACK_RECEIVER_THREAD",
+ 0x2BA1: "ER_SEMISYNC_FAILED_REGISTER_SLAVE_TO_RECEIVER",
+ 0x2BA2: "ER_SEMISYNC_START_BINLOG_DUMP_TO_SLAVE",
+ 0x2BA3: "ER_SEMISYNC_STOP_BINLOG_DUMP_TO_SLAVE",
+ 0x2BA4: "ER_SEMISYNC_UNREGISTER_TRX_OBSERVER_FAILED",
+ 0x2BA5: "ER_SEMISYNC_UNREGISTER_BINLOG_STORAGE_OBSERVER_FAILED",
+ 0x2BA6: "ER_SEMISYNC_UNREGISTER_BINLOG_TRANSMIT_OBSERVER_FAILED",
+ 0x2BA7: "ER_SEMISYNC_UNREGISTERED_REPLICATOR",
+ 0x2BA8: "ER_SEMISYNC_SOCKET_FD_TOO_LARGE",
+ 0x2BA9: "ER_SEMISYNC_SLAVE_REPLY",
+ 0x2BAA: "ER_SEMISYNC_MISSING_MAGIC_NO_FOR_SEMISYNC_PKT",
+ 0x2BAB: "ER_SEMISYNC_SLAVE_START",
+ 0x2BAC: "ER_SEMISYNC_SLAVE_REPLY_WITH_BINLOG_INFO",
+ 0x2BAD: "ER_SEMISYNC_SLAVE_NET_FLUSH_REPLY_FAILED",
+ 0x2BAE: "ER_SEMISYNC_SLAVE_SEND_REPLY_FAILED",
+ 0x2BAF: "ER_SEMISYNC_EXECUTION_FAILED_ON_MASTER",
+ 0x2BB0: "ER_SEMISYNC_NOT_SUPPORTED_BY_MASTER",
+ 0x2BB1: "ER_SEMISYNC_SLAVE_SET_FAILED",
+ 0x2BB2: "ER_SEMISYNC_FAILED_TO_STOP_ACK_RECEIVER_THD",
+ 0x2BB3: "ER_FIREWALL_FAILED_TO_READ_FIREWALL_TABLES",
+ 0x2BB4: "ER_FIREWALL_FAILED_TO_REG_DYNAMIC_PRIVILEGES",
+ 0x2BB5: "ER_FIREWALL_RECORDING_STMT_WAS_TRUNCATED",
+ 0x2BB6: "ER_FIREWALL_RECORDING_STMT_WITHOUT_TEXT",
+ 0x2BB7: "ER_FIREWALL_SUSPICIOUS_STMT",
+ 0x2BB8: "ER_FIREWALL_ACCESS_DENIED",
+ 0x2BB9: "ER_FIREWALL_SKIPPED_UNKNOWN_USER_MODE",
+ 0x2BBA: "ER_FIREWALL_RELOADING_CACHE",
+ 0x2BBB: "ER_FIREWALL_RESET_FOR_USER",
+ 0x2BBC: "ER_FIREWALL_STATUS_FLUSHED",
+ 0x2BBD: "ER_KEYRING_LOGGER_ERROR_MSG",
+ 0x2BBE: "ER_AUDIT_LOG_FILTER_IS_NOT_INSTALLED",
+ 0x2BBF: "ER_AUDIT_LOG_SWITCHING_TO_INCLUDE_LIST",
+ 0x2BC0: "ER_AUDIT_LOG_CANNOT_SET_LOG_POLICY_WITH_OTHER_POLICIES",
+ 0x2BC1: "ER_AUDIT_LOG_ONLY_INCLUDE_LIST_USED",
+ 0x2BC2: "ER_AUDIT_LOG_INDEX_MAP_CANNOT_ACCESS_DIR",
+ 0x2BC3: "ER_AUDIT_LOG_WRITER_RENAME_FILE_FAILED",
+ 0x2BC4: "ER_AUDIT_LOG_WRITER_DEST_FILE_ALREADY_EXISTS",
+ 0x2BC5: "ER_AUDIT_LOG_WRITER_RENAME_FILE_FAILED_REMOVE_FILE_MANUALLY",
+ 0x2BC6: "ER_AUDIT_LOG_WRITER_INCOMPLETE_FILE_RENAMED",
+ 0x2BC7: "ER_AUDIT_LOG_WRITER_FAILED_TO_WRITE_TO_FILE",
+ 0x2BC8: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_INIT_ENCRYPTION",
+ 0x2BC9: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_INIT_COMPRESSION",
+ 0x2BCA: "ER_AUDIT_LOG_EC_WRITER_FAILED_TO_CREATE_FILE",
+ 0x2BCB: "ER_AUDIT_LOG_RENAME_LOG_FILE_BEFORE_FLUSH",
+ 0x2BCC: "ER_AUDIT_LOG_FILTER_RESULT_MSG",
+ 0x2BCD: "ER_AUDIT_LOG_JSON_READER_FAILED_TO_PARSE",
+ 0x2BCE: "ER_AUDIT_LOG_JSON_READER_BUF_TOO_SMALL",
+ 0x2BCF: "ER_AUDIT_LOG_JSON_READER_FAILED_TO_OPEN_FILE",
+ 0x2BD0: "ER_AUDIT_LOG_JSON_READER_FILE_PARSING_ERROR",
+ 0x2BD1: "ER_AUDIT_LOG_FILTER_INVALID_COLUMN_COUNT",
+ 0x2BD2: "ER_AUDIT_LOG_FILTER_INVALID_COLUMN_DEFINITION",
+ 0x2BD3: "ER_AUDIT_LOG_FILTER_FAILED_TO_STORE_TABLE_FLDS",
+ 0x2BD4: "ER_AUDIT_LOG_FILTER_FAILED_TO_UPDATE_TABLE",
+ 0x2BD5: "ER_AUDIT_LOG_FILTER_FAILED_TO_INSERT_INTO_TABLE",
+ 0x2BD6: "ER_AUDIT_LOG_FILTER_FAILED_TO_DELETE_FROM_TABLE",
+ 0x2BD7: "ER_AUDIT_LOG_FILTER_FAILED_TO_INIT_TABLE_FOR_READ",
+ 0x2BD8: "ER_AUDIT_LOG_FILTER_FAILED_TO_READ_TABLE",
+ 0x2BD9: "ER_AUDIT_LOG_FILTER_FAILED_TO_CLOSE_TABLE_AFTER_READING",
+ 0x2BDA: "ER_AUDIT_LOG_FILTER_USER_AND_HOST_CANNOT_BE_EMPTY",
+ 0x2BDB: "ER_AUDIT_LOG_FILTER_FLD_FILTERNAME_CANNOT_BE_EMPTY",
+ 0x2BDC: "ER_VALIDATE_PWD_DICT_FILE_NOT_SPECIFIED",
+ 0x2BDD: "ER_VALIDATE_PWD_DICT_FILE_NOT_LOADED",
+ 0x2BDE: "ER_VALIDATE_PWD_DICT_FILE_TOO_BIG",
+ 0x2BDF: "ER_VALIDATE_PWD_FAILED_TO_READ_DICT_FILE",
+ 0x2BE0: "ER_VALIDATE_PWD_FAILED_TO_GET_FLD_FROM_SECURITY_CTX",
+ 0x2BE1: "ER_VALIDATE_PWD_FAILED_TO_GET_SECURITY_CTX",
+ 0x2BE2: "ER_VALIDATE_PWD_LENGTH_CHANGED",
+ 0x2BE3: "ER_REWRITER_QUERY_ERROR_MSG",
+ 0x2BE4: "ER_REWRITER_QUERY_FAILED",
+ 0x2BE5: "ER_XPLUGIN_STARTUP_FAILED",
+ 0x2BE6: "ER_XPLUGIN_SERVER_EXITING",
+ 0x2BE7: "ER_XPLUGIN_SERVER_EXITED",
+ 0x2BE8: "ER_XPLUGIN_USING_SSL_CONF_FROM_SERVER",
+ 0x2BE9: "ER_XPLUGIN_USING_SSL_CONF_FROM_MYSQLX",
+ 0x2BEA: "ER_XPLUGIN_FAILED_TO_USE_SSL_CONF",
+ 0x2BEB: "ER_XPLUGIN_USING_SSL_FOR_TLS_CONNECTION",
+ 0x2BEC: "ER_XPLUGIN_REFERENCE_TO_SECURE_CONN_WITH_XPLUGIN",
+ 0x2BED: "ER_XPLUGIN_ERROR_MSG",
+ 0x2BEE: "ER_SHA_PWD_FAILED_TO_PARSE_AUTH_STRING",
+ 0x2BEF: "ER_SHA_PWD_FAILED_TO_GENERATE_MULTI_ROUND_HASH",
+ 0x2BF0: "ER_SHA_PWD_AUTH_REQUIRES_RSA_OR_SSL",
+ 0x2BF1: "ER_SHA_PWD_RSA_KEY_TOO_LONG",
+ 0x2BF2: "ER_PLUGIN_COMMON_FAILED_TO_OPEN_FILTER_TABLES",
+ 0x2BF3: "ER_PLUGIN_COMMON_FAILED_TO_OPEN_TABLE",
+ 0x2BF4: "ER_AUTH_LDAP_ERROR_LOGGER_ERROR_MSG",
+ 0x2BF5: "ER_CONN_CONTROL_ERROR_MSG",
+ 0x2BF6: "ER_GRP_RPL_ERROR_MSG",
+ 0x2BF7: "ER_SHA_PWD_SALT_FOR_USER_CORRUPT",
+ 0x2BF8: "ER_SYS_VAR_COMPONENT_OOM",
+ 0x2BF9: "ER_SYS_VAR_COMPONENT_VARIABLE_SET_READ_ONLY",
+ 0x2BFA: "ER_SYS_VAR_COMPONENT_UNKNOWN_VARIABLE_TYPE",
+ 0x2BFB: "ER_SYS_VAR_COMPONENT_FAILED_TO_PARSE_VARIABLE_OPTIONS",
+ 0x2BFC: "ER_SYS_VAR_COMPONENT_FAILED_TO_MAKE_VARIABLE_PERSISTENT",
+ 0x2BFD: "ER_COMPONENT_FILTER_CONFUSED",
+ 0x2BFE: "ER_STOP_SLAVE_IO_THREAD_DISK_SPACE",
+ 0x2BFF: "ER_LOG_FILE_CANNOT_OPEN",
+ 0x2C04: "ER_PERSIST_OPTION_STATUS",
+ 0x2C05: "ER_NOT_IMPLEMENTED_GET_TABLESPACE_STATISTICS",
+ 0x2C08: "ER_SSL_FIPS_MODE_ERROR",
+ 0x2C09: "ER_CONN_INIT_CONNECT_IGNORED",
+ 0x2C0A: "ER_UNSUPPORTED_SQL_MODE",
+ 0x2C0B: "ER_REWRITER_OOM",
+ 0x2C0C: "ER_REWRITER_TABLE_MALFORMED_ERROR",
+ 0x2C0D: "ER_REWRITER_LOAD_FAILED",
+ 0x2C0E: "ER_REWRITER_READ_FAILED",
+ 0x2C0F: "ER_CONN_CONTROL_EVENT_COORDINATOR_INIT_FAILED",
+ 0x2C10: "ER_CONN_CONTROL_STAT_CONN_DELAY_TRIGGERED_UPDATE_FAILED",
+ 0x2C11: "ER_CONN_CONTROL_STAT_CONN_DELAY_TRIGGERED_RESET_FAILED",
+ 0x2C12: "ER_CONN_CONTROL_INVALID_CONN_DELAY_TYPE",
+ 0x2C13: "ER_CONN_CONTROL_DELAY_ACTION_INIT_FAILED",
+ 0x2C14: "ER_CONN_CONTROL_FAILED_TO_SET_CONN_DELAY",
+ 0x2C15: "ER_CONN_CONTROL_FAILED_TO_UPDATE_CONN_DELAY_HASH",
+ 0x2C16: "ER_XPLUGIN_FORCE_STOP_CLIENT",
+ 0x2C17: "ER_XPLUGIN_MAX_AUTH_ATTEMPTS_REACHED",
+ 0x2C18: "ER_XPLUGIN_BUFFER_PAGE_ALLOC_FAILED",
+ 0x2C19: "ER_XPLUGIN_DETECTED_HANGING_CLIENTS",
+ 0x2C1A: "ER_XPLUGIN_FAILED_TO_ACCEPT_CLIENT",
+ 0x2C1B: "ER_XPLUGIN_FAILED_TO_SCHEDULE_CLIENT",
+ 0x2C1C: "ER_XPLUGIN_FAILED_TO_PREPARE_IO_INTERFACES",
+ 0x2C1D: "ER_XPLUGIN_SRV_SESSION_INIT_THREAD_FAILED",
+ 0x2C1E: "ER_XPLUGIN_UNABLE_TO_USE_USER_SESSION_ACCOUNT",
+ 0x2C1F: "ER_XPLUGIN_REFERENCE_TO_USER_ACCOUNT_DOC_SECTION",
+ 0x2C20: "ER_XPLUGIN_UNEXPECTED_EXCEPTION_DISPATCHING_CMD",
+ 0x2C21: "ER_XPLUGIN_EXCEPTION_IN_TASK_SCHEDULER",
+ 0x2C22: "ER_XPLUGIN_TASK_SCHEDULING_FAILED",
+ 0x2C23: "ER_XPLUGIN_EXCEPTION_IN_EVENT_LOOP",
+ 0x2C24: "ER_XPLUGIN_LISTENER_SETUP_FAILED",
+ 0x2C25: "ER_XPLUING_NET_STARTUP_FAILED",
+ 0x2C26: "ER_XPLUGIN_FAILED_AT_SSL_CONF",
+ 0x2C27: "ER_XPLUGIN_CLIENT_SSL_HANDSHAKE_FAILED",
+ 0x2C28: "ER_XPLUGIN_SSL_HANDSHAKE_WITH_SERVER_FAILED",
+ 0x2C29: "ER_XPLUGIN_FAILED_TO_CREATE_SESSION_FOR_CONN",
+ 0x2C2A: "ER_XPLUGIN_FAILED_TO_INITIALIZE_SESSION",
+ 0x2C2B: "ER_XPLUGIN_MESSAGE_TOO_LONG",
+ 0x2C2C: "ER_XPLUGIN_UNINITIALIZED_MESSAGE",
+ 0x2C2D: "ER_XPLUGIN_FAILED_TO_SET_MIN_NUMBER_OF_WORKERS",
+ 0x2C2E: "ER_XPLUGIN_UNABLE_TO_ACCEPT_CONNECTION",
+ 0x2C2F: "ER_XPLUGIN_ALL_IO_INTERFACES_DISABLED",
+ 0x2C30: "ER_XPLUGIN_INVALID_MSG_DURING_CLIENT_INIT",
+ 0x2C31: "ER_XPLUGIN_CLOSING_CLIENTS_ON_SHUTDOWN",
+ 0x2C32: "ER_XPLUGIN_ERROR_READING_SOCKET",
+ 0x2C33: "ER_XPLUGIN_PEER_DISCONNECTED_WHILE_READING_MSG_BODY",
+ 0x2C34: "ER_XPLUGIN_READ_FAILED_CLOSING_CONNECTION",
+ 0x2C35: "ER_XPLUGIN_INVALID_AUTH_METHOD",
+ 0x2C36: "ER_XPLUGIN_UNEXPECTED_MSG_DURING_AUTHENTICATION",
+ 0x2C37: "ER_XPLUGIN_ERROR_WRITING_TO_CLIENT",
+ 0x2C38: "ER_XPLUGIN_SCHEDULER_STARTED",
+ 0x2C39: "ER_XPLUGIN_SCHEDULER_STOPPED",
+ 0x2C3A: "ER_XPLUGIN_LISTENER_SYS_VARIABLE_ERROR",
+ 0x2C3B: "ER_XPLUGIN_LISTENER_STATUS_MSG",
+ 0x2C3C: "ER_XPLUGIN_RETRYING_BIND_ON_PORT",
+ 0x2C3D: "ER_XPLUGIN_SHUTDOWN_TRIGGERED",
+ 0x2C3E: "ER_XPLUGIN_USER_ACCOUNT_WITH_ALL_PERMISSIONS",
+ 0x2C3F: "ER_XPLUGIN_EXISTING_USER_ACCOUNT_WITH_INCOMPLETE_GRANTS",
+ 0x2C40: "ER_XPLUGIN_SERVER_STARTS_HANDLING_CONNECTIONS",
+ 0x2C41: "ER_XPLUGIN_SERVER_STOPPED_HANDLING_CONNECTIONS",
+ 0x2C42: "ER_XPLUGIN_FAILED_TO_INTERRUPT_SESSION",
+ 0x2C43: "ER_XPLUGIN_CLIENT_RELEASE_TRIGGERED",
+ 0x2C44: "ER_XPLUGIN_IPv6_AVAILABLE",
+ 0x2C45: "ER_XPLUGIN_UNIX_SOCKET_NOT_CONFIGURED",
+ 0x2C46: "ER_XPLUGIN_CLIENT_KILL_MSG",
+ 0x2C47: "ER_XPLUGIN_FAILED_TO_GET_SECURITY_CTX",
+ 0x2C48: "ER_XPLUGIN_FAILED_TO_SWITCH_SECURITY_CTX_TO_ROOT",
+ 0x2C49: "ER_XPLUGIN_FAILED_TO_CLOSE_SQL_SESSION",
+ 0x2C4A: "ER_XPLUGIN_FAILED_TO_EXECUTE_ADMIN_CMD",
+ 0x2C4B: "ER_XPLUGIN_EMPTY_ADMIN_CMD",
+ 0x2C4C: "ER_XPLUGIN_FAILED_TO_GET_SYS_VAR",
+ 0x2C4D: "ER_XPLUGIN_FAILED_TO_GET_CREATION_STMT",
+ 0x2C4E: "ER_XPLUGIN_FAILED_TO_GET_ENGINE_INFO",
+ 0x2C4F: "ER_XPLUGIN_FAIL_TO_GET_RESULT_DATA",
+ 0x2C50: "ER_XPLUGIN_CAPABILITY_EXPIRED_PASSWORD",
+ 0x2C51: "ER_XPLUGIN_FAILED_TO_SET_SO_REUSEADDR_FLAG",
+ 0x2C52: "ER_XPLUGIN_FAILED_TO_OPEN_INTERNAL_SESSION",
+ 0x2C53: "ER_XPLUGIN_FAILED_TO_SWITCH_CONTEXT",
+ 0x2C54: "ER_XPLUGIN_FAILED_TO_UNREGISTER_UDF",
+ 0x2C55: "ER_XPLUGIN_GET_PEER_ADDRESS_FAILED",
+ 0x2C56: "ER_XPLUGIN_CAPABILITY_CLIENT_INTERACTIVE_FAILED",
+ 0x2C57: "ER_XPLUGIN_FAILED_TO_RESET_IPV6_V6ONLY_FLAG",
+ 0x2C58: "ER_KEYRING_INVALID_KEY_TYPE",
+ 0x2C59: "ER_KEYRING_INVALID_KEY_LENGTH",
+ 0x2C5A: "ER_KEYRING_FAILED_TO_CREATE_KEYRING_DIR",
+ 0x2C5B: "ER_KEYRING_FILE_INIT_FAILED",
+ 0x2C5C: "ER_KEYRING_INTERNAL_EXCEPTION_FAILED_FILE_INIT",
+ 0x2C5D: "ER_KEYRING_FAILED_TO_GENERATE_KEY",
+ 0x2C5E: "ER_KEYRING_CHECK_KEY_FAILED_DUE_TO_INVALID_KEY",
+ 0x2C5F: "ER_KEYRING_CHECK_KEY_FAILED_DUE_TO_EMPTY_KEY_ID",
+ 0x2C60: "ER_KEYRING_OPERATION_FAILED_DUE_TO_INTERNAL_ERROR",
+ 0x2C61: "ER_KEYRING_INCORRECT_FILE",
+ 0x2C62: "ER_KEYRING_FOUND_MALFORMED_BACKUP_FILE",
+ 0x2C63: "ER_KEYRING_FAILED_TO_RESTORE_FROM_BACKUP_FILE",
+ 0x2C64: "ER_KEYRING_FAILED_TO_FLUSH_KEYRING_TO_FILE",
+ 0x2C65: "ER_KEYRING_FAILED_TO_GET_FILE_STAT",
+ 0x2C66: "ER_KEYRING_FAILED_TO_REMOVE_FILE",
+ 0x2C67: "ER_KEYRING_FAILED_TO_TRUNCATE_FILE",
+ 0x2C68: "ER_KEYRING_UNKNOWN_ERROR",
+ 0x2C69: "ER_KEYRING_FAILED_TO_SET_KEYRING_FILE_DATA",
+ 0x2C6A: "ER_KEYRING_FILE_IO_ERROR",
+ 0x2C6B: "ER_KEYRING_FAILED_TO_LOAD_KEYRING_CONTENT",
+ 0x2C6C: "ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING",
+ 0x2C6D: "ER_KEYRING_FAILED_TO_FLUSH_KEYS_TO_KEYRING_BACKUP",
+ 0x2C6E: "ER_KEYRING_KEY_FETCH_FAILED_DUE_TO_EMPTY_KEY_ID",
+ 0x2C6F: "ER_KEYRING_FAILED_TO_REMOVE_KEY_DUE_TO_EMPTY_ID",
+ 0x2C70: "ER_KEYRING_OKV_INCORRECT_KEY_VAULT_CONFIGURED",
+ 0x2C71: "ER_KEYRING_OKV_INIT_FAILED_DUE_TO_INCORRECT_CONF",
+ 0x2C72: "ER_KEYRING_OKV_INIT_FAILED_DUE_TO_INTERNAL_ERROR",
+ 0x2C73: "ER_KEYRING_OKV_INVALID_KEY_TYPE",
+ 0x2C74: "ER_KEYRING_OKV_INVALID_KEY_LENGTH_FOR_CIPHER",
+ 0x2C75: "ER_KEYRING_OKV_FAILED_TO_GENERATE_KEY_DUE_TO_INTERNAL_ERROR",
+ 0x2C76: "ER_KEYRING_OKV_FAILED_TO_FIND_SERVER_ENTRY",
+ 0x2C77: "ER_KEYRING_OKV_FAILED_TO_FIND_STANDBY_SERVER_ENTRY",
+ 0x2C78: "ER_KEYRING_OKV_FAILED_TO_PARSE_CONF_FILE",
+ 0x2C79: "ER_KEYRING_OKV_FAILED_TO_LOAD_KEY_UID",
+ 0x2C7A: "ER_KEYRING_OKV_FAILED_TO_INIT_SSL_LAYER",
+ 0x2C7B: "ER_KEYRING_OKV_FAILED_TO_INIT_CLIENT",
+ 0x2C7C: "ER_KEYRING_OKV_CONNECTION_TO_SERVER_FAILED",
+ 0x2C7D: "ER_KEYRING_OKV_FAILED_TO_REMOVE_KEY",
+ 0x2C7E: "ER_KEYRING_OKV_FAILED_TO_ADD_ATTRIBUTE",
+ 0x2C7F: "ER_KEYRING_OKV_FAILED_TO_GENERATE_KEY",
+ 0x2C80: "ER_KEYRING_OKV_FAILED_TO_STORE_KEY",
+ 0x2C81: "ER_KEYRING_OKV_FAILED_TO_ACTIVATE_KEYS",
+ 0x2C82: "ER_KEYRING_OKV_FAILED_TO_FETCH_KEY",
+ 0x2C83: "ER_KEYRING_OKV_FAILED_TO_STORE_OR_GENERATE_KEY",
+ 0x2C84: "ER_KEYRING_OKV_FAILED_TO_RETRIEVE_KEY_SIGNATURE",
+ 0x2C85: "ER_KEYRING_OKV_FAILED_TO_RETRIEVE_KEY",
+ 0x2C86: "ER_KEYRING_OKV_FAILED_TO_LOAD_SSL_TRUST_STORE",
+ 0x2C87: "ER_KEYRING_OKV_FAILED_TO_SET_CERTIFICATE_FILE",
+ 0x2C88: "ER_KEYRING_OKV_FAILED_TO_SET_KEY_FILE",
+ 0x2C89: "ER_KEYRING_OKV_KEY_MISMATCH",
+ 0x2C8A: "ER_KEYRING_ENCRYPTED_FILE_INCORRECT_KEYRING_FILE",
+ 0x2C8B: "ER_KEYRING_ENCRYPTED_FILE_DECRYPTION_FAILED",
+ 0x2C8C: "ER_KEYRING_ENCRYPTED_FILE_FOUND_MALFORMED_BACKUP_FILE",
+ 0x2C8D: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_RESTORE_KEYRING",
+ 0x2C8E: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_FLUSH_KEYRING",
+ 0x2C8F: "ER_KEYRING_ENCRYPTED_FILE_ENCRYPTION_FAILED",
+ 0x2C90: "ER_KEYRING_ENCRYPTED_FILE_INVALID_KEYRING_DIR",
+ 0x2C91: "ER_KEYRING_ENCRYPTED_FILE_FAILED_TO_CREATE_KEYRING_DIR",
+ 0x2C92: "ER_KEYRING_ENCRYPTED_FILE_PASSWORD_IS_INVALID",
+ 0x2C93: "ER_KEYRING_ENCRYPTED_FILE_PASSWORD_IS_TOO_LONG",
+ 0x2C94: "ER_KEYRING_ENCRYPTED_FILE_INIT_FAILURE",
+ 0x2C95: "ER_KEYRING_ENCRYPTED_FILE_INIT_FAILED_DUE_TO_INTERNAL_ERROR",
+ 0x2C96: "ER_KEYRING_ENCRYPTED_FILE_GEN_KEY_FAILED_DUE_TO_INTERNAL_ERROR",
+ 0x2C97: "ER_KEYRING_AWS_FAILED_TO_SET_CMK_ID",
+ 0x2C98: "ER_KEYRING_AWS_FAILED_TO_SET_REGION",
+ 0x2C99: "ER_KEYRING_AWS_FAILED_TO_OPEN_CONF_FILE",
+ 0x2C9A: "ER_KEYRING_AWS_FAILED_TO_ACCESS_KEY_ID_FROM_CONF_FILE",
+ 0x2C9B: "ER_KEYRING_AWS_FAILED_TO_ACCESS_KEY_FROM_CONF_FILE",
+ 0x2C9C: "ER_KEYRING_AWS_INVALID_CONF_FILE_PATH",
+ 0x2C9D: "ER_KEYRING_AWS_INVALID_DATA_FILE_PATH",
+ 0x2C9E: "ER_KEYRING_AWS_FAILED_TO_ACCESS_OR_CREATE_KEYRING_DIR",
+ 0x2C9F: "ER_KEYRING_AWS_FAILED_TO_ACCESS_OR_CREATE_KEYRING_DATA_FILE",
+ 0x2CA0: "ER_KEYRING_AWS_FAILED_TO_INIT_DUE_TO_INTERNAL_ERROR",
+ 0x2CA1: "ER_KEYRING_AWS_FAILED_TO_ACCESS_DATA_FILE",
+ 0x2CA2: "ER_KEYRING_AWS_CMK_ID_NOT_SET",
+ 0x2CA3: "ER_KEYRING_AWS_FAILED_TO_GET_KMS_CREDENTIAL_FROM_CONF_FILE",
+ 0x2CA4: "ER_KEYRING_AWS_INIT_FAILURE",
+ 0x2CA5: "ER_KEYRING_AWS_FAILED_TO_INIT_DUE_TO_PLUGIN_INTERNAL_ERROR",
+ 0x2CA6: "ER_KEYRING_AWS_INVALID_KEY_LENGTH_FOR_CIPHER",
+ 0x2CA7: "ER_KEYRING_AWS_FAILED_TO_GENERATE_KEY_DUE_TO_INTERNAL_ERROR",
+ 0x2CA8: "ER_KEYRING_AWS_INCORRECT_FILE",
+ 0x2CA9: "ER_KEYRING_AWS_FOUND_MALFORMED_BACKUP_FILE",
+ 0x2CAA: "ER_KEYRING_AWS_FAILED_TO_RESTORE_FROM_BACKUP_FILE",
+ 0x2CAB: "ER_KEYRING_AWS_FAILED_TO_FLUSH_KEYRING_TO_FILE",
+ 0x2CAC: "ER_KEYRING_AWS_INCORRECT_REGION",
+ 0x2CAD: "ER_KEYRING_AWS_FAILED_TO_CONNECT_KMS",
+ 0x2CAE: "ER_KEYRING_AWS_FAILED_TO_GENERATE_NEW_KEY",
+ 0x2CAF: "ER_KEYRING_AWS_FAILED_TO_ENCRYPT_KEY",
+ 0x2CB0: "ER_KEYRING_AWS_FAILED_TO_RE_ENCRYPT_KEY",
+ 0x2CB1: "ER_KEYRING_AWS_FAILED_TO_DECRYPT_KEY",
+ 0x2CB2: "ER_KEYRING_AWS_FAILED_TO_ROTATE_CMK",
+ 0x2CB3: "ER_GRP_RPL_GTID_ALREADY_USED",
+ 0x2CB4: "ER_GRP_RPL_APPLIER_THD_KILLED",
+ 0x2CB5: "ER_GRP_RPL_EVENT_HANDLING_ERROR",
+ 0x2CB6: "ER_GRP_RPL_ERROR_GTID_EXECUTION_INFO",
+ 0x2CB7: "ER_GRP_RPL_CERTIFICATE_SIZE_ERROR",
+ 0x2CB8: "ER_GRP_RPL_CREATE_APPLIER_CACHE_ERROR",
+ 0x2CB9: "ER_GRP_RPL_UNBLOCK_WAITING_THD",
+ 0x2CBA: "ER_GRP_RPL_APPLIER_PIPELINE_NOT_DISPOSED",
+ 0x2CBB: "ER_GRP_RPL_APPLIER_THD_EXECUTION_ABORTED",
+ 0x2CBC: "ER_GRP_RPL_APPLIER_EXECUTION_FATAL_ERROR",
+ 0x2CBD: "ER_GRP_RPL_ERROR_STOPPING_CHANNELS",
+ 0x2CBE: "ER_GRP_RPL_ERROR_SENDING_SINGLE_PRIMARY_MSSG",
+ 0x2CBF: "ER_GRP_RPL_UPDATE_TRANS_SNAPSHOT_VER_ERROR",
+ 0x2CC0: "ER_GRP_RPL_SIDNO_FETCH_ERROR",
+ 0x2CC1: "ER_GRP_RPL_BROADCAST_COMMIT_TRANS_MSSG_FAILED",
+ 0x2CC2: "ER_GRP_RPL_GROUP_NAME_PARSE_ERROR",
+ 0x2CC3: "ER_GRP_RPL_ADD_GRPSID_TO_GRPGTIDSID_MAP_ERROR",
+ 0x2CC4: "ER_GRP_RPL_UPDATE_GRPGTID_EXECUTED_ERROR",
+ 0x2CC5: "ER_GRP_RPL_DONOR_TRANS_INFO_ERROR",
+ 0x2CC6: "ER_GRP_RPL_SERVER_CONN_ERROR",
+ 0x2CC7: "ER_GRP_RPL_ERROR_FETCHING_GTID_EXECUTED_SET",
+ 0x2CC8: "ER_GRP_RPL_ADD_GTID_TO_GRPGTID_EXECUTED_ERROR",
+ 0x2CC9: "ER_GRP_RPL_ERROR_FETCHING_GTID_SET",
+ 0x2CCA: "ER_GRP_RPL_ADD_RETRIEVED_SET_TO_GRP_GTID_EXECUTED_ERROR",
+ 0x2CCB: "ER_GRP_RPL_CERTIFICATION_INITIALIZATION_FAILURE",
+ 0x2CCC: "ER_GRP_RPL_UPDATE_LAST_CONFLICT_FREE_TRANS_ERROR",
+ 0x2CCD: "ER_GRP_RPL_UPDATE_TRANS_SNAPSHOT_REF_VER_ERROR",
+ 0x2CCE: "ER_GRP_RPL_FETCH_TRANS_SIDNO_ERROR",
+ 0x2CCF: "ER_GRP_RPL_ERROR_VERIFYING_SIDNO",
+ 0x2CD0: "ER_GRP_RPL_CANT_GENERATE_GTID",
+ 0x2CD1: "ER_GRP_RPL_INVALID_GTID_SET",
+ 0x2CD2: "ER_GRP_RPL_UPDATE_GTID_SET_ERROR",
+ 0x2CD3: "ER_GRP_RPL_RECEIVED_SET_MISSING_GTIDS",
+ 0x2CD4: "ER_GRP_RPL_SKIP_COMPUTATION_TRANS_COMMITTED",
+ 0x2CD5: "ER_GRP_RPL_NULL_PACKET",
+ 0x2CD6: "ER_GRP_RPL_CANT_READ_GTID",
+ 0x2CD7: "ER_GRP_RPL_PROCESS_GTID_SET_ERROR",
+ 0x2CD8: "ER_GRP_RPL_PROCESS_INTERSECTION_GTID_SET_ERROR",
+ 0x2CD9: "ER_GRP_RPL_SET_STABLE_TRANS_ERROR",
+ 0x2CDA: "ER_GRP_RPL_CANT_READ_GRP_GTID_EXTRACTED",
+ 0x2CDB: "ER_GRP_RPL_CANT_READ_WRITE_SET_ITEM",
+ 0x2CDC: "ER_GRP_RPL_INIT_CERTIFICATION_INFO_FAILURE",
+ 0x2CDD: "ER_GRP_RPL_CONFLICT_DETECTION_DISABLED",
+ 0x2CDE: "ER_GRP_RPL_MSG_DISCARDED",
+ 0x2CDF: "ER_GRP_RPL_MISSING_GRP_RPL_APPLIER",
+ 0x2CE0: "ER_GRP_RPL_CERTIFIER_MSSG_PROCESS_ERROR",
+ 0x2CE1: "ER_GRP_RPL_SRV_NOT_ONLINE",
+ 0x2CE2: "ER_GRP_RPL_SRV_ONLINE",
+ 0x2CE3: "ER_GRP_RPL_DISABLE_SRV_READ_MODE_RESTRICTED",
+ 0x2CE4: "ER_GRP_RPL_MEM_ONLINE",
+ 0x2CE5: "ER_GRP_RPL_MEM_UNREACHABLE",
+ 0x2CE6: "ER_GRP_RPL_MEM_REACHABLE",
+ 0x2CE7: "ER_GRP_RPL_SRV_BLOCKED",
+ 0x2CE8: "ER_GRP_RPL_SRV_BLOCKED_FOR_SECS",
+ 0x2CE9: "ER_GRP_RPL_CHANGE_GRP_MEM_NOT_PROCESSED",
+ 0x2CEA: "ER_GRP_RPL_MEMBER_CONTACT_RESTORED",
+ 0x2CEB: "ER_GRP_RPL_MEMBER_REMOVED",
+ 0x2CEC: "ER_GRP_RPL_PRIMARY_MEMBER_LEFT_GRP",
+ 0x2CED: "ER_GRP_RPL_MEMBER_ADDED",
+ 0x2CEE: "ER_GRP_RPL_MEMBER_EXIT_PLUGIN_ERROR",
+ 0x2CEF: "ER_GRP_RPL_MEMBER_CHANGE",
+ 0x2CF0: "ER_GRP_RPL_MEMBER_LEFT_GRP",
+ 0x2CF1: "ER_GRP_RPL_MEMBER_EXPELLED",
+ 0x2CF2: "ER_GRP_RPL_SESSION_OPEN_FAILED",
+ 0x2CF3: "ER_GRP_RPL_NEW_PRIMARY_ELECTED",
+ 0x2CF4: "ER_GRP_RPL_DISABLE_READ_ONLY_FAILED",
+ 0x2CF5: "ER_GRP_RPL_ENABLE_READ_ONLY_FAILED",
+ 0x2CF6: "ER_GRP_RPL_SRV_PRIMARY_MEM",
+ 0x2CF7: "ER_GRP_RPL_SRV_SECONDARY_MEM",
+ 0x2CF8: "ER_GRP_RPL_NO_SUITABLE_PRIMARY_MEM",
+ 0x2CF9: "ER_GRP_RPL_SUPER_READ_ONLY_ACTIVATE_ERROR",
+ 0x2CFA: "ER_GRP_RPL_EXCEEDS_AUTO_INC_VALUE",
+ 0x2CFB: "ER_GRP_RPL_DATA_NOT_PROVIDED_BY_MEM",
+ 0x2CFC: "ER_GRP_RPL_MEMBER_ALREADY_EXISTS",
+ 0x2CFD: "ER_GRP_RPL_GRP_CHANGE_INFO_EXTRACT_ERROR",
+ 0x2CFE: "ER_GRP_RPL_GTID_EXECUTED_EXTRACT_ERROR",
+ 0x2CFF: "ER_GRP_RPL_GTID_SET_EXTRACT_ERROR",
+ 0x2D00: "ER_GRP_RPL_START_FAILED",
+ 0x2D01: "ER_GRP_RPL_MEMBER_VER_INCOMPATIBLE",
+ 0x2D02: "ER_GRP_RPL_TRANS_NOT_PRESENT_IN_GRP",
+ 0x2D03: "ER_GRP_RPL_TRANS_GREATER_THAN_GRP",
+ 0x2D04: "ER_GRP_RPL_MEMBER_VERSION_LOWER_THAN_GRP",
+ 0x2D05: "ER_GRP_RPL_LOCAL_GTID_SETS_PROCESS_ERROR",
+ 0x2D06: "ER_GRP_RPL_MEMBER_TRANS_GREATER_THAN_GRP",
+ 0x2D07: "ER_GRP_RPL_BLOCK_SIZE_DIFF_FROM_GRP",
+ 0x2D08: "ER_GRP_RPL_TRANS_WRITE_SET_EXTRACT_DIFF_FROM_GRP",
+ 0x2D09: "ER_GRP_RPL_MEMBER_CFG_INCOMPATIBLE_WITH_GRP_CFG",
+ 0x2D0A: "ER_GRP_RPL_MEMBER_STOP_RPL_CHANNELS_ERROR",
+ 0x2D0B: "ER_GRP_RPL_PURGE_APPLIER_LOGS",
+ 0x2D0C: "ER_GRP_RPL_RESET_APPLIER_MODULE_LOGS_ERROR",
+ 0x2D0D: "ER_GRP_RPL_APPLIER_THD_SETUP_ERROR",
+ 0x2D0E: "ER_GRP_RPL_APPLIER_THD_START_ERROR",
+ 0x2D0F: "ER_GRP_RPL_APPLIER_THD_STOP_ERROR",
+ 0x2D10: "ER_GRP_RPL_FETCH_TRANS_DATA_FAILED",
+ 0x2D11: "ER_GRP_RPL_SLAVE_IO_THD_PRIMARY_UNKNOWN",
+ 0x2D12: "ER_GRP_RPL_SALVE_IO_THD_ON_SECONDARY_MEMBER",
+ 0x2D13: "ER_GRP_RPL_SLAVE_SQL_THD_PRIMARY_UNKNOWN",
+ 0x2D14: "ER_GRP_RPL_SLAVE_SQL_THD_ON_SECONDARY_MEMBER",
+ 0x2D15: "ER_GRP_RPL_NEEDS_INNODB_TABLE",
+ 0x2D16: "ER_GRP_RPL_PRIMARY_KEY_NOT_DEFINED",
+ 0x2D17: "ER_GRP_RPL_FK_WITH_CASCADE_UNSUPPORTED",
+ 0x2D18: "ER_GRP_RPL_AUTO_INC_RESET",
+ 0x2D19: "ER_GRP_RPL_AUTO_INC_OFFSET_RESET",
+ 0x2D1A: "ER_GRP_RPL_AUTO_INC_SET",
+ 0x2D1B: "ER_GRP_RPL_AUTO_INC_OFFSET_SET",
+ 0x2D1C: "ER_GRP_RPL_FETCH_TRANS_CONTEXT_FAILED",
+ 0x2D1D: "ER_GRP_RPL_FETCH_FORMAT_DESC_LOG_EVENT_FAILED",
+ 0x2D1E: "ER_GRP_RPL_FETCH_TRANS_CONTEXT_LOG_EVENT_FAILED",
+ 0x2D1F: "ER_GRP_RPL_FETCH_SNAPSHOT_VERSION_FAILED",
+ 0x2D20: "ER_GRP_RPL_FETCH_GTID_LOG_EVENT_FAILED",
+ 0x2D21: "ER_GRP_RPL_UPDATE_SERV_CERTIFICATE_FAILED",
+ 0x2D22: "ER_GRP_RPL_ADD_GTID_INFO_WITH_LOCAL_GTID_FAILED",
+ 0x2D23: "ER_GRP_RPL_ADD_GTID_INFO_WITHOUT_LOCAL_GTID_FAILED",
+ 0x2D24: "ER_GRP_RPL_NOTIFY_CERTIFICATION_OUTCOME_FAILED",
+ 0x2D25: "ER_GRP_RPL_ADD_GTID_INFO_WITH_REMOTE_GTID_FAILED",
+ 0x2D26: "ER_GRP_RPL_ADD_GTID_INFO_WITHOUT_REMOTE_GTID_FAILED",
+ 0x2D27: "ER_GRP_RPL_FETCH_VIEW_CHANGE_LOG_EVENT_FAILED",
+ 0x2D28: "ER_GRP_RPL_CONTACT_WITH_SRV_FAILED",
+ 0x2D29: "ER_GRP_RPL_SRV_WAIT_TIME_OUT",
+ 0x2D2A: "ER_GRP_RPL_FETCH_LOG_EVENT_FAILED",
+ 0x2D2B: "ER_GRP_RPL_START_GRP_RPL_FAILED",
+ 0x2D2C: "ER_GRP_RPL_CONN_INTERNAL_PLUGIN_FAIL",
+ 0x2D2D: "ER_GRP_RPL_SUPER_READ_ON",
+ 0x2D2E: "ER_GRP_RPL_SUPER_READ_OFF",
+ 0x2D2F: "ER_GRP_RPL_KILLED_SESSION_ID",
+ 0x2D30: "ER_GRP_RPL_KILLED_FAILED_ID",
+ 0x2D31: "ER_GRP_RPL_INTERNAL_QUERY",
+ 0x2D32: "ER_GRP_RPL_COPY_FROM_EMPTY_STRING",
+ 0x2D33: "ER_GRP_RPL_QUERY_FAIL",
+ 0x2D34: "ER_GRP_RPL_CREATE_SESSION_UNABLE",
+ 0x2D35: "ER_GRP_RPL_MEMBER_NOT_FOUND",
+ 0x2D36: "ER_GRP_RPL_MAXIMUM_CONNECTION_RETRIES_REACHED",
+ 0x2D37: "ER_GRP_RPL_ALL_DONORS_LEFT_ABORT_RECOVERY",
+ 0x2D38: "ER_GRP_RPL_ESTABLISH_RECOVERY_WITH_DONOR",
+ 0x2D39: "ER_GRP_RPL_ESTABLISH_RECOVERY_WITH_ANOTHER_DONOR",
+ 0x2D3A: "ER_GRP_RPL_NO_VALID_DONOR",
+ 0x2D3B: "ER_GRP_RPL_CONFIG_RECOVERY",
+ 0x2D3C: "ER_GRP_RPL_ESTABLISHING_CONN_GRP_REC_DONOR",
+ 0x2D3D: "ER_GRP_RPL_CREATE_GRP_RPL_REC_CHANNEL",
+ 0x2D3E: "ER_GRP_RPL_DONOR_SERVER_CONN",
+ 0x2D3F: "ER_GRP_RPL_CHECK_STATUS_TABLE",
+ 0x2D40: "ER_GRP_RPL_STARTING_GRP_REC",
+ 0x2D41: "ER_GRP_RPL_DONOR_CONN_TERMINATION",
+ 0x2D42: "ER_GRP_RPL_STOPPING_GRP_REC",
+ 0x2D43: "ER_GRP_RPL_PURGE_REC",
+ 0x2D44: "ER_GRP_RPL_UNABLE_TO_KILL_CONN_REC_DONOR_APPLIER",
+ 0x2D45: "ER_GRP_RPL_UNABLE_TO_KILL_CONN_REC_DONOR_FAILOVER",
+ 0x2D46: "ER_GRP_RPL_FAILED_TO_NOTIFY_GRP_MEMBERSHIP_EVENT",
+ 0x2D47: "ER_GRP_RPL_FAILED_TO_BROADCAST_GRP_MEMBERSHIP_NOTIFICATION",
+ 0x2D48: "ER_GRP_RPL_FAILED_TO_BROADCAST_MEMBER_STATUS_NOTIFICATION",
+ 0x2D49: "ER_GRP_RPL_OOM_FAILED_TO_GENERATE_IDENTIFICATION_HASH",
+ 0x2D4A: "ER_GRP_RPL_WRITE_IDENT_HASH_BASE64_ENCODING_FAILED",
+ 0x2D4B: "ER_GRP_RPL_INVALID_BINLOG_FORMAT",
+ 0x2D4C: "ER_GRP_RPL_BINLOG_CHECKSUM_SET",
+ 0x2D4D: "ER_GRP_RPL_TRANS_WRITE_SET_EXTRACTION_NOT_SET",
+ 0x2D4E: "ER_GRP_RPL_UNSUPPORTED_TRANS_ISOLATION",
+ 0x2D4F: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_WHILE_STOPPING",
+ 0x2D50: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_WHILE_RECOVERING",
+ 0x2D51: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_IN_ERROR_STATE",
+ 0x2D52: "ER_GRP_RPL_CANNOT_EXECUTE_TRANS_IN_OFFLINE_MODE",
+ 0x2D53: "ER_GRP_RPL_MULTIPLE_CACHE_TYPE_NOT_SUPPORTED_FOR_SESSION",
+ 0x2D54: "ER_GRP_RPL_FAILED_TO_REINIT_BINLOG_CACHE_FOR_READ",
+ 0x2D55: "ER_GRP_RPL_FAILED_TO_CREATE_TRANS_CONTEXT",
+ 0x2D56: "ER_GRP_RPL_FAILED_TO_EXTRACT_TRANS_WRITE_SET",
+ 0x2D57: "ER_GRP_RPL_FAILED_TO_GATHER_TRANS_WRITE_SET",
+ 0x2D58: "ER_GRP_RPL_TRANS_SIZE_EXCEEDS_LIMIT",
+ 0x2D59: "ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_READ_FAILED",
+ 0x2D5A: "ER_GRP_RPL_APPENDING_DATA_TO_INTERNAL_CACHE_FAILED",
+ 0x2D5B: "ER_GRP_RPL_WRITE_TO_BINLOG_CACHE_FAILED",
+ 0x2D5C: "ER_GRP_RPL_FAILED_TO_REGISTER_TRANS_OUTCOME_NOTIFICTION",
+ 0x2D5D: "ER_GRP_RPL_MSG_TOO_LONG_BROADCASTING_TRANS_FAILED",
+ 0x2D5E: "ER_GRP_RPL_BROADCASTING_TRANS_TO_GRP_FAILED",
+ 0x2D5F: "ER_GRP_RPL_ERROR_WHILE_WAITING_FOR_CONFLICT_DETECTION",
+ 0x2D60: "ER_GRP_RPL_REINIT_OF_INTERNAL_CACHE_FOR_WRITE_FAILED",
+ 0x2D61: "ER_GRP_RPL_FAILED_TO_CREATE_COMMIT_CACHE",
+ 0x2D62: "ER_GRP_RPL_REINIT_OF_COMMIT_CACHE_FOR_WRITE_FAILED",
+ 0x2D63: "ER_GRP_RPL_PREV_REC_SESSION_RUNNING",
+ 0x2D64: "ER_GRP_RPL_FATAL_REC_PROCESS",
+ 0x2D65: "ER_GRP_RPL_WHILE_STOPPING_REP_CHANNEL",
+ 0x2D66: "ER_GRP_RPL_UNABLE_TO_EVALUATE_APPLIER_STATUS",
+ 0x2D67: "ER_GRP_RPL_ONLY_ONE_SERVER_ALIVE",
+ 0x2D68: "ER_GRP_RPL_CERTIFICATION_REC_PROCESS",
+ 0x2D69: "ER_GRP_RPL_UNABLE_TO_ENSURE_EXECUTION_REC",
+ 0x2D6A: "ER_GRP_RPL_WHILE_SENDING_MSG_REC",
+ 0x2D6B: "ER_GRP_RPL_READ_UNABLE_FOR_SUPER_READ_ONLY",
+ 0x2D6C: "ER_GRP_RPL_READ_UNABLE_FOR_READ_ONLY_SUPER_READ_ONLY",
+ 0x2D6D: "ER_GRP_RPL_UNABLE_TO_RESET_SERVER_READ_MODE",
+ 0x2D6E: "ER_GRP_RPL_UNABLE_TO_CERTIFY_PLUGIN_TRANS",
+ 0x2D6F: "ER_GRP_RPL_UNBLOCK_CERTIFIED_TRANS",
+ 0x2D70: "ER_GRP_RPL_SERVER_WORKING_AS_SECONDARY",
+ 0x2D71: "ER_GRP_RPL_FAILED_TO_START_WITH_INVALID_SERVER_ID",
+ 0x2D72: "ER_GRP_RPL_FORCE_MEMBERS_MUST_BE_EMPTY",
+ 0x2D73: "ER_GRP_RPL_PLUGIN_STRUCT_INIT_NOT_POSSIBLE_ON_SERVER_START",
+ 0x2D74: "ER_GRP_RPL_FAILED_TO_ENABLE_SUPER_READ_ONLY_MODE",
+ 0x2D75: "ER_GRP_RPL_FAILED_TO_INIT_COMMUNICATION_ENGINE",
+ 0x2D76: "ER_GRP_RPL_FAILED_TO_START_ON_SECONDARY_WITH_ASYNC_CHANNELS",
+ 0x2D77: "ER_GRP_RPL_FAILED_TO_START_COMMUNICATION_ENGINE",
+ 0x2D78: "ER_GRP_RPL_TIMEOUT_ON_VIEW_AFTER_JOINING_GRP",
+ 0x2D79: "ER_GRP_RPL_FAILED_TO_CALL_GRP_COMMUNICATION_INTERFACE",
+ 0x2D7A: "ER_GRP_RPL_MEMBER_SERVER_UUID_IS_INCOMPATIBLE_WITH_GRP",
+ 0x2D7B: "ER_GRP_RPL_MEMBER_CONF_INFO",
+ 0x2D7C: "ER_GRP_RPL_FAILED_TO_CONFIRM_IF_SERVER_LEFT_GRP",
+ 0x2D7D: "ER_GRP_RPL_SERVER_IS_ALREADY_LEAVING",
+ 0x2D7E: "ER_GRP_RPL_SERVER_ALREADY_LEFT",
+ 0x2D7F: "ER_GRP_RPL_WAITING_FOR_VIEW_UPDATE",
+ 0x2D80: "ER_GRP_RPL_TIMEOUT_RECEIVING_VIEW_CHANGE_ON_SHUTDOWN",
+ 0x2D81: "ER_GRP_RPL_REQUESTING_NON_MEMBER_SERVER_TO_LEAVE",
+ 0x2D82: "ER_GRP_RPL_IS_STOPPING",
+ 0x2D83: "ER_GRP_RPL_IS_STOPPED",
+ 0x2D84: "ER_GRP_RPL_FAILED_TO_ENABLE_READ_ONLY_MODE_ON_SHUTDOWN",
+ 0x2D85: "ER_GRP_RPL_RECOVERY_MODULE_TERMINATION_TIMED_OUT_ON_SHUTDOWN",
+ 0x2D86: "ER_GRP_RPL_APPLIER_TERMINATION_TIMED_OUT_ON_SHUTDOWN",
+ 0x2D87: "ER_GRP_RPL_FAILED_TO_SHUTDOWN_REGISTRY_MODULE",
+ 0x2D88: "ER_GRP_RPL_FAILED_TO_INIT_HANDLER",
+ 0x2D89: "ER_GRP_RPL_FAILED_TO_REGISTER_SERVER_STATE_OBSERVER",
+ 0x2D8A: "ER_GRP_RPL_FAILED_TO_REGISTER_TRANS_STATE_OBSERVER",
+ 0x2D8B: "ER_GRP_RPL_FAILED_TO_REGISTER_BINLOG_STATE_OBSERVER",
+ 0x2D8C: "ER_GRP_RPL_FAILED_TO_START_ON_BOOT",
+ 0x2D8D: "ER_GRP_RPL_FAILED_TO_STOP_ON_PLUGIN_UNINSTALL",
+ 0x2D8E: "ER_GRP_RPL_FAILED_TO_UNREGISTER_SERVER_STATE_OBSERVER",
+ 0x2D8F: "ER_GRP_RPL_FAILED_TO_UNREGISTER_TRANS_STATE_OBSERVER",
+ 0x2D90: "ER_GRP_RPL_FAILED_TO_UNREGISTER_BINLOG_STATE_OBSERVER",
+ 0x2D91: "ER_GRP_RPL_ALL_OBSERVERS_UNREGISTERED",
+ 0x2D92: "ER_GRP_RPL_FAILED_TO_PARSE_THE_GRP_NAME",
+ 0x2D93: "ER_GRP_RPL_FAILED_TO_GENERATE_SIDNO_FOR_GRP",
+ 0x2D94: "ER_GRP_RPL_APPLIER_NOT_STARTED_DUE_TO_RUNNING_PREV_SHUTDOWN",
+ 0x2D95: "ER_GRP_RPL_FAILED_TO_INIT_APPLIER_MODULE",
+ 0x2D96: "ER_GRP_RPL_APPLIER_INITIALIZED",
+ 0x2D97: "ER_GRP_RPL_COMMUNICATION_SSL_CONF_INFO",
+ 0x2D98: "ER_GRP_RPL_ABORTS_AS_SSL_NOT_SUPPORTED_BY_MYSQLD",
+ 0x2D99: "ER_GRP_RPL_SSL_DISABLED",
+ 0x2D9A: "ER_GRP_RPL_UNABLE_TO_INIT_COMMUNICATION_ENGINE",
+ 0x2D9B: "ER_GRP_RPL_BINLOG_DISABLED",
+ 0x2D9C: "ER_GRP_RPL_GTID_MODE_OFF",
+ 0x2D9D: "ER_GRP_RPL_LOG_SLAVE_UPDATES_NOT_SET",
+ 0x2D9E: "ER_GRP_RPL_INVALID_TRANS_WRITE_SET_EXTRACTION_VALUE",
+ 0x2D9F: "ER_GRP_RPL_RELAY_LOG_INFO_REPO_MUST_BE_TABLE",
+ 0x2DA0: "ER_GRP_RPL_MASTER_INFO_REPO_MUST_BE_TABLE",
+ 0x2DA1: "ER_GRP_RPL_INCORRECT_TYPE_SET_FOR_PARALLEL_APPLIER",
+ 0x2DA2: "ER_GRP_RPL_SLAVE_PRESERVE_COMMIT_ORDER_NOT_SET",
+ 0x2DA3: "ER_GRP_RPL_SINGLE_PRIM_MODE_NOT_ALLOWED_WITH_UPDATE_EVERYWHERE",
+ 0x2DA4: "ER_GRP_RPL_MODULE_TERMINATE_ERROR",
+ 0x2DA5: "ER_GRP_RPL_GRP_NAME_OPTION_MANDATORY",
+ 0x2DA6: "ER_GRP_RPL_GRP_NAME_IS_TOO_LONG",
+ 0x2DA7: "ER_GRP_RPL_GRP_NAME_IS_NOT_VALID_UUID",
+ 0x2DA8: "ER_GRP_RPL_FLOW_CTRL_MIN_QUOTA_GREATER_THAN_MAX_QUOTA",
+ 0x2DA9: "ER_GRP_RPL_FLOW_CTRL_MIN_RECOVERY_QUOTA_GREATER_THAN_MAX_QUOTA",
+ 0x2DAA: "ER_GRP_RPL_FLOW_CTRL_MAX_QUOTA_SMALLER_THAN_MIN_QUOTAS",
+ 0x2DAB: "ER_GRP_RPL_INVALID_SSL_RECOVERY_STRING",
+ 0x2DAC: "ER_GRP_RPL_SUPPORTS_ONLY_ONE_FORCE_MEMBERS_SET",
+ 0x2DAD: "ER_GRP_RPL_FORCE_MEMBERS_SET_UPDATE_NOT_ALLOWED",
+ 0x2DAE: "ER_GRP_RPL_GRP_COMMUNICATION_INIT_WITH_CONF",
+ 0x2DAF: "ER_GRP_RPL_UNKNOWN_GRP_RPL_APPLIER_PIPELINE_REQUESTED",
+ 0x2DB0: "ER_GRP_RPL_FAILED_TO_BOOTSTRAP_EVENT_HANDLING_INFRASTRUCTURE",
+ 0x2DB1: "ER_GRP_RPL_APPLIER_HANDLER_NOT_INITIALIZED",
+ 0x2DB2: "ER_GRP_RPL_APPLIER_HANDLER_IS_IN_USE",
+ 0x2DB3: "ER_GRP_RPL_APPLIER_HANDLER_ROLE_IS_IN_USE",
+ 0x2DB4: "ER_GRP_RPL_FAILED_TO_INIT_APPLIER_HANDLER",
+ 0x2DB5: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_INIT_SESSION_THREAD",
+ 0x2DB6: "ER_GRP_RPL_SQL_SERVICE_COMM_SESSION_NOT_INITIALIZED",
+ 0x2DB7: "ER_GRP_RPL_SQL_SERVICE_SERVER_SESSION_KILLED",
+ 0x2DB8: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_RUN_SQL_QUERY",
+ 0x2DB9: "ER_GRP_RPL_SQL_SERVICE_SERVER_INTERNAL_FAILURE",
+ 0x2DBA: "ER_GRP_RPL_SQL_SERVICE_RETRIES_EXCEEDED_ON_SESSION_STATE",
+ 0x2DBB: "ER_GRP_RPL_SQL_SERVICE_FAILED_TO_FETCH_SECURITY_CTX",
+ 0x2DBC: "ER_GRP_RPL_SQL_SERVICE_SERVER_ACCESS_DENIED_FOR_USER",
+ 0x2DBD: "ER_GRP_RPL_SQL_SERVICE_MAX_CONN_ERROR_FROM_SERVER",
+ 0x2DBE: "ER_GRP_RPL_SQL_SERVICE_SERVER_ERROR_ON_CONN",
+ 0x2DBF: "ER_GRP_RPL_UNREACHABLE_MAJORITY_TIMEOUT_FOR_MEMBER",
+ 0x2DC0: "ER_GRP_RPL_SERVER_SET_TO_READ_ONLY_DUE_TO_ERRORS",
+ 0x2DC1: "ER_GRP_RPL_GMS_LISTENER_FAILED_TO_LOG_NOTIFICATION",
+ 0x2DC2: "ER_GRP_RPL_GRP_COMMUNICATION_ENG_INIT_FAILED",
+ 0x2DC3: "ER_GRP_RPL_SET_GRP_COMMUNICATION_ENG_LOGGER_FAILED",
+ 0x2DC4: "ER_GRP_RPL_DEBUG_OPTIONS",
+ 0x2DC5: "ER_GRP_RPL_INVALID_DEBUG_OPTIONS",
+ 0x2DC6: "ER_GRP_RPL_EXIT_GRP_GCS_ERROR",
+ 0x2DC7: "ER_GRP_RPL_GRP_MEMBER_OFFLINE",
+ 0x2DC8: "ER_GRP_RPL_GCS_INTERFACE_ERROR",
+ 0x2DC9: "ER_GRP_RPL_FORCE_MEMBER_VALUE_SET_ERROR",
+ 0x2DCA: "ER_GRP_RPL_FORCE_MEMBER_VALUE_SET",
+ 0x2DCB: "ER_GRP_RPL_FORCE_MEMBER_VALUE_TIME_OUT",
+ 0x2DCC: "ER_GRP_RPL_BROADCAST_COMMIT_MSSG_TOO_BIG",
+ 0x2DCD: "ER_GRP_RPL_SEND_STATS_ERROR",
+ 0x2DCE: "ER_GRP_RPL_MEMBER_STATS_INFO",
+ 0x2DCF: "ER_GRP_RPL_FLOW_CONTROL_STATS",
+ 0x2DD0: "ER_GRP_RPL_UNABLE_TO_CONVERT_PACKET_TO_EVENT",
+ 0x2DD1: "ER_GRP_RPL_PIPELINE_CREATE_FAILED",
+ 0x2DD2: "ER_GRP_RPL_PIPELINE_REINIT_FAILED_WRITE",
+ 0x2DD3: "ER_GRP_RPL_UNABLE_TO_CONVERT_EVENT_TO_PACKET",
+ 0x2DD4: "ER_GRP_RPL_PIPELINE_FLUSH_FAIL",
+ 0x2DD5: "ER_GRP_RPL_PIPELINE_REINIT_FAILED_READ",
+ 0x2DD6: "ER_GRP_RPL_STOP_REP_CHANNEL",
+ 0x2DD7: "ER_GRP_RPL_GCS_GR_ERROR_MSG",
+ 0x2DD8: "ER_GRP_RPL_SLAVE_IO_THREAD_UNBLOCKED",
+ 0x2DD9: "ER_GRP_RPL_SLAVE_IO_THREAD_ERROR_OUT",
+ 0x2DDA: "ER_GRP_RPL_SLAVE_APPLIER_THREAD_UNBLOCKED",
+ 0x2DDB: "ER_GRP_RPL_SLAVE_APPLIER_THREAD_ERROR_OUT",
+ 0x2DDC: "ER_LDAP_AUTH_FAILED_TO_CREATE_OR_GET_CONNECTION",
+ 0x2DDD: "ER_LDAP_AUTH_DEINIT_FAILED",
+ 0x2DDE: "ER_LDAP_AUTH_SKIPPING_USER_GROUP_SEARCH",
+ 0x2DDF: "ER_LDAP_AUTH_POOL_DISABLE_MAX_SIZE_ZERO",
+ 0x2DE0: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_OBJECT_CREATOR",
+ 0x2DE1: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_OBJECT",
+ 0x2DE2: "ER_LDAP_AUTH_TLS_CONF",
+ 0x2DE3: "ER_LDAP_AUTH_TLS_CONNECTION",
+ 0x2DE4: "ER_LDAP_AUTH_CONN_POOL_NOT_CREATED",
+ 0x2DE5: "ER_LDAP_AUTH_CONN_POOL_INITIALIZING",
+ 0x2DE6: "ER_LDAP_AUTH_CONN_POOL_DEINITIALIZING",
+ 0x2DE7: "ER_LDAP_AUTH_ZERO_MAX_POOL_SIZE_UNCHANGED",
+ 0x2DE8: "ER_LDAP_AUTH_POOL_REINITIALIZING",
+ 0x2DE9: "ER_LDAP_AUTH_FAILED_TO_WRITE_PACKET",
+ 0x2DEA: "ER_LDAP_AUTH_SETTING_USERNAME",
+ 0x2DEB: "ER_LDAP_AUTH_USER_AUTH_DATA",
+ 0x2DEC: "ER_LDAP_AUTH_INFO_FOR_USER",
+ 0x2DED: "ER_LDAP_AUTH_USER_GROUP_SEARCH_INFO",
+ 0x2DEE: "ER_LDAP_AUTH_GRP_SEARCH_SPECIAL_HDL",
+ 0x2DEF: "ER_LDAP_AUTH_GRP_IS_FULL_DN",
+ 0x2DF0: "ER_LDAP_AUTH_USER_NOT_FOUND_IN_ANY_GRP",
+ 0x2DF1: "ER_LDAP_AUTH_USER_FOUND_IN_MANY_GRPS",
+ 0x2DF2: "ER_LDAP_AUTH_USER_HAS_MULTIPLE_GRP_NAMES",
+ 0x2DF3: "ER_LDAP_AUTH_SEARCHED_USER_GRP_NAME",
+ 0x2DF4: "ER_LDAP_AUTH_OBJECT_CREATE_TIMESTAMP",
+ 0x2DF5: "ER_LDAP_AUTH_CERTIFICATE_NAME",
+ 0x2DF6: "ER_LDAP_AUTH_FAILED_TO_POOL_DEINIT",
+ 0x2DF7: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_RECONSTRUCTING",
+ 0x2DF8: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_INIT_STATE",
+ 0x2DF9: "ER_LDAP_AUTH_FAILED_TO_INITIALIZE_POOL_IN_DEINIT_STATE",
+ 0x2DFA: "ER_LDAP_AUTH_FAILED_TO_DEINITIALIZE_POOL_IN_RECONSTRUCT_STATE",
+ 0x2DFB: "ER_LDAP_AUTH_FAILED_TO_DEINITIALIZE_NOT_READY_POOL",
+ 0x2DFC: "ER_LDAP_AUTH_FAILED_TO_GET_CONNECTION_AS_PLUGIN_NOT_READY",
+ 0x2DFD: "ER_LDAP_AUTH_CONNECTION_POOL_INIT_FAILED",
+ 0x2DFE: "ER_LDAP_AUTH_MAX_ALLOWED_CONNECTION_LIMIT_HIT",
+ 0x2DFF: "ER_LDAP_AUTH_MAX_POOL_SIZE_SET_FAILED",
+ 0x2E00: "ER_LDAP_AUTH_PLUGIN_FAILED_TO_READ_PACKET",
+ 0x2E01: "ER_LDAP_AUTH_CREATING_LDAP_CONNECTION",
+ 0x2E02: "ER_LDAP_AUTH_GETTING_CONNECTION_FROM_POOL",
+ 0x2E03: "ER_LDAP_AUTH_RETURNING_CONNECTION_TO_POOL",
+ 0x2E04: "ER_LDAP_AUTH_SEARCH_USER_GROUP_ATTR_NOT_FOUND",
+ 0x2E05: "ER_LDAP_AUTH_LDAP_INFO_NULL",
+ 0x2E06: "ER_LDAP_AUTH_FREEING_CONNECTION",
+ 0x2E07: "ER_LDAP_AUTH_CONNECTION_PUSHED_TO_POOL",
+ 0x2E08: "ER_LDAP_AUTH_CONNECTION_CREATOR_ENTER",
+ 0x2E09: "ER_LDAP_AUTH_STARTING_TLS",
+ 0x2E0A: "ER_LDAP_AUTH_CONNECTION_GET_LDAP_INFO_NULL",
+ 0x2E0B: "ER_LDAP_AUTH_DELETING_CONNECTION_KEY",
+ 0x2E0C: "ER_LDAP_AUTH_POOLED_CONNECTION_KEY",
+ 0x2E0D: "ER_LDAP_AUTH_CREATE_CONNECTION_KEY",
+ 0x2E0E: "ER_LDAP_AUTH_COMMUNICATION_HOST_INFO",
+ 0x2E0F: "ER_LDAP_AUTH_METHOD_TO_CLIENT",
+ 0x2E10: "ER_LDAP_AUTH_SASL_REQUEST_FROM_CLIENT",
+ 0x2E11: "ER_LDAP_AUTH_SASL_PROCESS_SASL",
+ 0x2E12: "ER_LDAP_AUTH_SASL_BIND_SUCCESS_INFO",
+ 0x2E13: "ER_LDAP_AUTH_STARTED_FOR_USER",
+ 0x2E14: "ER_LDAP_AUTH_DISTINGUISHED_NAME",
+ 0x2E15: "ER_LDAP_AUTH_INIT_FAILED",
+ 0x2E16: "ER_LDAP_AUTH_OR_GROUP_RETRIEVAL_FAILED",
+ 0x2E17: "ER_LDAP_AUTH_USER_GROUP_SEARCH_FAILED",
+ 0x2E18: "ER_LDAP_AUTH_USER_BIND_FAILED",
+ 0x2E19: "ER_LDAP_AUTH_POOL_GET_FAILED_TO_CREATE_CONNECTION",
+ 0x2E1A: "ER_LDAP_AUTH_FAILED_TO_CREATE_LDAP_CONNECTION",
+ 0x2E1B: "ER_LDAP_AUTH_FAILED_TO_ESTABLISH_TLS_CONNECTION",
+ 0x2E1C: "ER_LDAP_AUTH_FAILED_TO_SEARCH_DN",
+ 0x2E1D: "ER_LDAP_AUTH_CONNECTION_POOL_REINIT_ENTER",
+ 0x2E1E: "ER_SYSTEMD_NOTIFY_PATH_TOO_LONG",
+ 0x2E1F: "ER_SYSTEMD_NOTIFY_CONNECT_FAILED",
+ 0x2E20: "ER_SYSTEMD_NOTIFY_WRITE_FAILED",
+ 0x2E21: "ER_FOUND_MISSING_GTIDS",
+ 0x2E22: "ER_PID_FILE_PRIV_DIRECTORY_INSECURE",
+ 0x2E23: "ER_CANT_CHECK_PID_PATH",
+ 0x2E24: "ER_VALIDATE_PWD_STATUS_VAR_REGISTRATION_FAILED",
+ 0x2E25: "ER_VALIDATE_PWD_STATUS_VAR_UNREGISTRATION_FAILED",
+ 0x2E26: "ER_VALIDATE_PWD_DICT_FILE_OPEN_FAILED",
+ 0x2E27: "ER_VALIDATE_PWD_COULD_BE_NULL",
+ 0x2E28: "ER_VALIDATE_PWD_STRING_CONV_TO_LOWERCASE_FAILED",
+ 0x2E29: "ER_VALIDATE_PWD_STRING_CONV_TO_BUFFER_FAILED",
+ 0x2E2A: "ER_VALIDATE_PWD_STRING_HANDLER_MEM_ALLOCATION_FAILED",
+ 0x2E2B: "ER_VALIDATE_PWD_STRONG_POLICY_DICT_FILE_UNSPECIFIED",
+ 0x2E2C: "ER_VALIDATE_PWD_CONVERT_TO_BUFFER_FAILED",
+ 0x2E2D: "ER_VALIDATE_PWD_VARIABLE_REGISTRATION_FAILED",
+ 0x2E2E: "ER_VALIDATE_PWD_VARIABLE_UNREGISTRATION_FAILED",
+ 0x2E2F: "ER_KEYRING_MIGRATION_EXTRA_OPTIONS",
+ 0x2E31: "ER_IB_MSG_0",
+ 0x2E32: "ER_IB_MSG_1",
+ 0x2E33: "ER_IB_MSG_2",
+ 0x2E34: "ER_IB_MSG_3",
+ 0x2E35: "ER_IB_MSG_4",
+ 0x2E36: "ER_IB_MSG_5",
+ 0x2E37: "ER_IB_MSG_6",
+ 0x2E38: "ER_IB_MSG_7",
+ 0x2E39: "ER_IB_MSG_8",
+ 0x2E3A: "ER_IB_MSG_9",
+ 0x2E3B: "ER_IB_MSG_10",
+ 0x2E3C: "ER_IB_MSG_11",
+ 0x2E3D: "ER_IB_MSG_12",
+ 0x2E3E: "ER_IB_MSG_13",
+ 0x2E3F: "ER_IB_MSG_14",
+ 0x2E40: "ER_IB_MSG_15",
+ 0x2E41: "ER_IB_MSG_16",
+ 0x2E42: "ER_IB_MSG_17",
+ 0x2E43: "ER_IB_MSG_18",
+ 0x2E44: "ER_IB_MSG_19",
+ 0x2E45: "ER_IB_MSG_20",
+ 0x2E46: "ER_IB_MSG_21",
+ 0x2E47: "ER_IB_MSG_22",
+ 0x2E48: "ER_IB_MSG_23",
+ 0x2E49: "ER_IB_MSG_24",
+ 0x2E4A: "ER_IB_MSG_25",
+ 0x2E4B: "ER_IB_MSG_26",
+ 0x2E4C: "ER_IB_MSG_27",
+ 0x2E4D: "ER_IB_MSG_28",
+ 0x2E4E: "ER_IB_MSG_29",
+ 0x2E4F: "ER_IB_MSG_30",
+ 0x2E50: "ER_IB_MSG_31",
+ 0x2E51: "ER_IB_MSG_32",
+ 0x2E52: "ER_IB_MSG_33",
+ 0x2E53: "ER_IB_MSG_34",
+ 0x2E54: "ER_IB_MSG_35",
+ 0x2E55: "ER_IB_MSG_36",
+ 0x2E56: "ER_IB_MSG_37",
+ 0x2E57: "ER_IB_MSG_38",
+ 0x2E58: "ER_IB_MSG_39",
+ 0x2E59: "ER_IB_MSG_40",
+ 0x2E5A: "ER_IB_MSG_41",
+ 0x2E5B: "ER_IB_MSG_42",
+ 0x2E5C: "ER_IB_MSG_43",
+ 0x2E5D: "ER_IB_MSG_44",
+ 0x2E5E: "ER_IB_MSG_45",
+ 0x2E5F: "ER_IB_MSG_46",
+ 0x2E60: "ER_IB_MSG_47",
+ 0x2E61: "ER_IB_MSG_48",
+ 0x2E62: "ER_IB_MSG_49",
+ 0x2E63: "ER_IB_MSG_50",
+ 0x2E64: "ER_IB_MSG_51",
+ 0x2E65: "ER_IB_MSG_52",
+ 0x2E66: "ER_IB_MSG_53",
+ 0x2E67: "ER_IB_MSG_54",
+ 0x2E68: "ER_IB_MSG_55",
+ 0x2E69: "ER_IB_MSG_56",
+ 0x2E6A: "ER_IB_MSG_57",
+ 0x2E6B: "ER_IB_MSG_58",
+ 0x2E6C: "ER_IB_MSG_59",
+ 0x2E6D: "ER_IB_MSG_60",
+ 0x2E6E: "ER_IB_MSG_61",
+ 0x2E6F: "ER_IB_MSG_62",
+ 0x2E70: "ER_IB_MSG_63",
+ 0x2E71: "ER_IB_MSG_64",
+ 0x2E72: "ER_IB_MSG_65",
+ 0x2E73: "ER_IB_MSG_66",
+ 0x2E74: "ER_IB_MSG_67",
+ 0x2E75: "ER_IB_MSG_68",
+ 0x2E76: "ER_IB_MSG_69",
+ 0x2E77: "ER_IB_MSG_70",
+ 0x2E78: "ER_IB_MSG_71",
+ 0x2E79: "ER_IB_MSG_72",
+ 0x2E7A: "ER_IB_MSG_73",
+ 0x2E7B: "ER_IB_MSG_74",
+ 0x2E7C: "ER_IB_MSG_75",
+ 0x2E7D: "ER_IB_MSG_76",
+ 0x2E7E: "ER_IB_MSG_77",
+ 0x2E7F: "ER_IB_MSG_78",
+ 0x2E80: "ER_IB_MSG_79",
+ 0x2E81: "ER_IB_MSG_80",
+ 0x2E82: "ER_IB_MSG_81",
+ 0x2E83: "ER_IB_MSG_82",
+ 0x2E84: "ER_IB_MSG_83",
+ 0x2E85: "ER_IB_MSG_84",
+ 0x2E86: "ER_IB_MSG_85",
+ 0x2E87: "ER_IB_MSG_86",
+ 0x2E88: "ER_IB_MSG_87",
+ 0x2E89: "ER_IB_MSG_88",
+ 0x2E8A: "ER_IB_MSG_89",
+ 0x2E8B: "ER_IB_MSG_90",
+ 0x2E8C: "ER_IB_MSG_91",
+ 0x2E8D: "ER_IB_MSG_92",
+ 0x2E8E: "ER_IB_MSG_93",
+ 0x2E8F: "ER_IB_MSG_94",
+ 0x2E90: "ER_IB_MSG_95",
+ 0x2E91: "ER_IB_MSG_96",
+ 0x2E92: "ER_IB_MSG_97",
+ 0x2E93: "ER_IB_MSG_98",
+ 0x2E94: "ER_IB_MSG_99",
+ 0x2E95: "ER_IB_MSG_100",
+ 0x2E96: "ER_IB_MSG_101",
+ 0x2E97: "ER_IB_MSG_102",
+ 0x2E98: "ER_IB_MSG_103",
+ 0x2E99: "ER_IB_MSG_104",
+ 0x2E9A: "ER_IB_MSG_105",
+ 0x2E9B: "ER_IB_MSG_106",
+ 0x2E9C: "ER_IB_MSG_107",
+ 0x2E9D: "ER_IB_MSG_108",
+ 0x2E9E: "ER_IB_MSG_109",
+ 0x2E9F: "ER_IB_MSG_110",
+ 0x2EA0: "ER_IB_MSG_111",
+ 0x2EA1: "ER_IB_MSG_112",
+ 0x2EA2: "ER_IB_MSG_113",
+ 0x2EA3: "ER_IB_MSG_114",
+ 0x2EA4: "ER_IB_MSG_115",
+ 0x2EA5: "ER_IB_MSG_116",
+ 0x2EA6: "ER_IB_MSG_117",
+ 0x2EA7: "ER_IB_MSG_118",
+ 0x2EA8: "ER_IB_MSG_119",
+ 0x2EA9: "ER_IB_MSG_120",
+ 0x2EAA: "ER_IB_MSG_121",
+ 0x2EAB: "ER_IB_MSG_122",
+ 0x2EAC: "ER_IB_MSG_123",
+ 0x2EAD: "ER_IB_MSG_124",
+ 0x2EAE: "ER_IB_MSG_125",
+ 0x2EAF: "ER_IB_MSG_126",
+ 0x2EB0: "ER_IB_MSG_127",
+ 0x2EB1: "ER_IB_MSG_128",
+ 0x2EB2: "ER_IB_MSG_129",
+ 0x2EB3: "ER_IB_MSG_130",
+ 0x2EB4: "ER_IB_MSG_131",
+ 0x2EB5: "ER_IB_MSG_132",
+ 0x2EB6: "ER_IB_MSG_133",
+ 0x2EB7: "ER_IB_MSG_134",
+ 0x2EB8: "ER_IB_MSG_135",
+ 0x2EB9: "ER_IB_MSG_136",
+ 0x2EBA: "ER_IB_MSG_137",
+ 0x2EBB: "ER_IB_MSG_138",
+ 0x2EBC: "ER_IB_MSG_139",
+ 0x2EBD: "ER_IB_MSG_140",
+ 0x2EBE: "ER_IB_MSG_141",
+ 0x2EBF: "ER_IB_MSG_142",
+ 0x2EC0: "ER_IB_MSG_143",
+ 0x2EC1: "ER_IB_MSG_144",
+ 0x2EC2: "ER_IB_MSG_145",
+ 0x2EC3: "ER_IB_MSG_146",
+ 0x2EC4: "ER_IB_MSG_147",
+ 0x2EC5: "ER_IB_MSG_148",
+ 0x2EC6: "ER_IB_MSG_149",
+ 0x2EC7: "ER_IB_MSG_150",
+ 0x2EC8: "ER_IB_MSG_151",
+ 0x2EC9: "ER_IB_MSG_152",
+ 0x2ECA: "ER_IB_MSG_153",
+ 0x2ECB: "ER_IB_MSG_154",
+ 0x2ECC: "ER_IB_MSG_155",
+ 0x2ECD: "ER_IB_MSG_156",
+ 0x2ECE: "ER_IB_MSG_157",
+ 0x2ECF: "ER_IB_MSG_158",
+ 0x2ED0: "ER_IB_MSG_159",
+ 0x2ED1: "ER_IB_MSG_160",
+ 0x2ED2: "ER_IB_MSG_161",
+ 0x2ED3: "ER_IB_MSG_162",
+ 0x2ED4: "ER_IB_MSG_163",
+ 0x2ED5: "ER_IB_MSG_164",
+ 0x2ED6: "ER_IB_MSG_165",
+ 0x2ED7: "ER_IB_MSG_166",
+ 0x2ED8: "ER_IB_MSG_167",
+ 0x2ED9: "ER_IB_MSG_168",
+ 0x2EDA: "ER_IB_MSG_169",
+ 0x2EDB: "ER_IB_MSG_170",
+ 0x2EDC: "ER_IB_MSG_171",
+ 0x2EDD: "ER_IB_MSG_172",
+ 0x2EDE: "ER_IB_MSG_173",
+ 0x2EDF: "ER_IB_MSG_174",
+ 0x2EE0: "ER_IB_MSG_175",
+ 0x2EE1: "ER_IB_MSG_176",
+ 0x2EE2: "ER_IB_MSG_177",
+ 0x2EE3: "ER_IB_MSG_178",
+ 0x2EE4: "ER_IB_MSG_179",
+ 0x2EE5: "ER_IB_MSG_180",
+ 0x2EE6: "ER_IB_MSG_181",
+ 0x2EE7: "ER_IB_MSG_182",
+ 0x2EE8: "ER_IB_MSG_183",
+ 0x2EE9: "ER_IB_MSG_184",
+ 0x2EEA: "ER_IB_MSG_185",
+ 0x2EEB: "ER_IB_MSG_186",
+ 0x2EEC: "ER_IB_MSG_187",
+ 0x2EED: "ER_IB_MSG_188",
+ 0x2EEE: "ER_IB_MSG_189",
+ 0x2EEF: "ER_IB_MSG_190",
+ 0x2EF0: "ER_IB_MSG_191",
+ 0x2EF1: "ER_IB_MSG_192",
+ 0x2EF2: "ER_IB_MSG_193",
+ 0x2EF3: "ER_IB_MSG_194",
+ 0x2EF4: "ER_IB_MSG_195",
+ 0x2EF5: "ER_IB_MSG_196",
+ 0x2EF6: "ER_IB_MSG_197",
+ 0x2EF7: "ER_IB_MSG_198",
+ 0x2EF8: "ER_IB_MSG_199",
+ 0x2EF9: "ER_IB_MSG_200",
+ 0x2EFA: "ER_IB_MSG_201",
+ 0x2EFB: "ER_IB_MSG_202",
+ 0x2EFC: "ER_IB_MSG_203",
+ 0x2EFD: "ER_IB_MSG_204",
+ 0x2EFE: "ER_IB_MSG_205",
+ 0x2EFF: "ER_IB_MSG_206",
+ 0x2F00: "ER_IB_MSG_207",
+ 0x2F01: "ER_IB_MSG_208",
+ 0x2F02: "ER_IB_MSG_209",
+ 0x2F03: "ER_IB_MSG_210",
+ 0x2F04: "ER_IB_MSG_211",
+ 0x2F05: "ER_IB_MSG_212",
+ 0x2F06: "ER_IB_MSG_213",
+ 0x2F07: "ER_IB_MSG_214",
+ 0x2F08: "ER_IB_MSG_215",
+ 0x2F09: "ER_IB_MSG_216",
+ 0x2F0A: "ER_IB_MSG_217",
+ 0x2F0B: "ER_IB_MSG_218",
+ 0x2F0C: "ER_IB_MSG_219",
+ 0x2F0D: "ER_IB_MSG_220",
+ 0x2F0E: "ER_IB_MSG_221",
+ 0x2F0F: "ER_IB_MSG_222",
+ 0x2F10: "ER_IB_MSG_223",
+ 0x2F11: "ER_IB_MSG_224",
+ 0x2F12: "ER_IB_MSG_225",
+ 0x2F13: "ER_IB_MSG_226",
+ 0x2F14: "ER_IB_MSG_227",
+ 0x2F15: "ER_IB_MSG_228",
+ 0x2F16: "ER_IB_MSG_229",
+ 0x2F17: "ER_IB_MSG_230",
+ 0x2F18: "ER_IB_MSG_231",
+ 0x2F19: "ER_IB_MSG_232",
+ 0x2F1A: "ER_IB_MSG_233",
+ 0x2F1B: "ER_IB_MSG_234",
+ 0x2F1C: "ER_IB_MSG_235",
+ 0x2F1D: "ER_IB_MSG_236",
+ 0x2F1E: "ER_IB_MSG_237",
+ 0x2F1F: "ER_IB_MSG_238",
+ 0x2F20: "ER_IB_MSG_239",
+ 0x2F21: "ER_IB_MSG_240",
+ 0x2F22: "ER_IB_MSG_241",
+ 0x2F23: "ER_IB_MSG_242",
+ 0x2F24: "ER_IB_MSG_243",
+ 0x2F25: "ER_IB_MSG_244",
+ 0x2F26: "ER_IB_MSG_245",
+ 0x2F27: "ER_IB_MSG_246",
+ 0x2F28: "ER_IB_MSG_247",
+ 0x2F29: "ER_IB_MSG_248",
+ 0x2F2A: "ER_IB_MSG_249",
+ 0x2F2B: "ER_IB_MSG_250",
+ 0x2F2C: "ER_IB_MSG_251",
+ 0x2F2D: "ER_IB_MSG_252",
+ 0x2F2E: "ER_IB_MSG_253",
+ 0x2F2F: "ER_IB_MSG_254",
+ 0x2F30: "ER_IB_MSG_255",
+ 0x2F31: "ER_IB_MSG_256",
+ 0x2F32: "ER_IB_MSG_257",
+ 0x2F33: "ER_IB_MSG_258",
+ 0x2F34: "ER_IB_MSG_259",
+ 0x2F35: "ER_IB_MSG_260",
+ 0x2F36: "ER_IB_MSG_261",
+ 0x2F37: "ER_IB_MSG_262",
+ 0x2F38: "ER_IB_MSG_263",
+ 0x2F39: "ER_IB_MSG_264",
+ 0x2F3A: "ER_IB_MSG_265",
+ 0x2F3B: "ER_IB_MSG_266",
+ 0x2F3C: "ER_IB_MSG_267",
+ 0x2F3D: "ER_IB_MSG_268",
+ 0x2F3E: "ER_IB_MSG_269",
+ 0x2F3F: "ER_IB_MSG_270",
+ 0x2F40: "ER_IB_MSG_271",
+ 0x2F41: "ER_IB_MSG_272",
+ 0x2F42: "ER_IB_MSG_273",
+ 0x2F43: "ER_IB_MSG_274",
+ 0x2F44: "ER_IB_MSG_275",
+ 0x2F45: "ER_IB_MSG_276",
+ 0x2F46: "ER_IB_MSG_277",
+ 0x2F47: "ER_IB_MSG_278",
+ 0x2F48: "ER_IB_MSG_279",
+ 0x2F49: "ER_IB_MSG_280",
+ 0x2F4A: "ER_IB_MSG_281",
+ 0x2F4B: "ER_IB_MSG_282",
+ 0x2F4C: "ER_IB_MSG_283",
+ 0x2F4D: "ER_IB_MSG_284",
+ 0x2F4E: "ER_IB_MSG_285",
+ 0x2F4F: "ER_IB_MSG_286",
+ 0x2F50: "ER_IB_MSG_287",
+ 0x2F51: "ER_IB_MSG_288",
+ 0x2F52: "ER_IB_MSG_289",
+ 0x2F53: "ER_IB_MSG_290",
+ 0x2F54: "ER_IB_MSG_291",
+ 0x2F55: "ER_IB_MSG_292",
+ 0x2F56: "ER_IB_MSG_293",
+ 0x2F57: "ER_IB_MSG_294",
+ 0x2F58: "ER_IB_MSG_295",
+ 0x2F59: "ER_IB_MSG_296",
+ 0x2F5A: "ER_IB_MSG_297",
+ 0x2F5B: "ER_IB_MSG_298",
+ 0x2F5C: "ER_IB_MSG_299",
+ 0x2F5D: "ER_IB_MSG_300",
+ 0x2F5E: "ER_IB_MSG_301",
+ 0x2F5F: "ER_IB_MSG_302",
+ 0x2F60: "ER_IB_MSG_303",
+ 0x2F61: "ER_IB_MSG_304",
+ 0x2F62: "ER_IB_MSG_305",
+ 0x2F63: "ER_IB_MSG_306",
+ 0x2F64: "ER_IB_MSG_307",
+ 0x2F65: "ER_IB_MSG_308",
+ 0x2F66: "ER_IB_MSG_309",
+ 0x2F67: "ER_IB_MSG_310",
+ 0x2F68: "ER_IB_MSG_311",
+ 0x2F69: "ER_IB_MSG_312",
+ 0x2F6A: "ER_IB_MSG_313",
+ 0x2F6B: "ER_IB_MSG_314",
+ 0x2F6C: "ER_IB_MSG_315",
+ 0x2F6D: "ER_IB_MSG_316",
+ 0x2F6E: "ER_IB_MSG_317",
+ 0x2F6F: "ER_IB_MSG_318",
+ 0x2F70: "ER_IB_MSG_319",
+ 0x2F71: "ER_IB_MSG_320",
+ 0x2F72: "ER_IB_MSG_321",
+ 0x2F73: "ER_IB_MSG_322",
+ 0x2F74: "ER_IB_MSG_323",
+ 0x2F75: "ER_IB_MSG_324",
+ 0x2F76: "ER_IB_MSG_325",
+ 0x2F77: "ER_IB_MSG_326",
+ 0x2F78: "ER_IB_MSG_327",
+ 0x2F79: "ER_IB_MSG_328",
+ 0x2F7A: "ER_IB_MSG_329",
+ 0x2F7B: "ER_IB_MSG_330",
+ 0x2F7C: "ER_IB_MSG_331",
+ 0x2F7D: "ER_IB_MSG_332",
+ 0x2F7E: "ER_IB_MSG_333",
+ 0x2F7F: "ER_IB_MSG_334",
+ 0x2F80: "ER_IB_MSG_335",
+ 0x2F81: "ER_IB_MSG_336",
+ 0x2F82: "ER_IB_MSG_337",
+ 0x2F83: "ER_IB_MSG_338",
+ 0x2F84: "ER_IB_MSG_339",
+ 0x2F85: "ER_IB_MSG_340",
+ 0x2F86: "ER_IB_MSG_341",
+ 0x2F87: "ER_IB_MSG_342",
+ 0x2F88: "ER_IB_MSG_343",
+ 0x2F89: "ER_IB_MSG_344",
+ 0x2F8A: "ER_IB_MSG_345",
+ 0x2F8B: "ER_IB_MSG_346",
+ 0x2F8C: "ER_IB_MSG_347",
+ 0x2F8D: "ER_IB_MSG_348",
+ 0x2F8E: "ER_IB_MSG_349",
+ 0x2F8F: "ER_IB_MSG_350",
+ 0x2F90: "ER_IB_MSG_351",
+ 0x2F91: "ER_IB_MSG_352",
+ 0x2F92: "ER_IB_MSG_353",
+ 0x2F93: "ER_IB_MSG_354",
+ 0x2F94: "ER_IB_MSG_355",
+ 0x2F95: "ER_IB_MSG_356",
+ 0x2F96: "ER_IB_MSG_357",
+ 0x2F97: "ER_IB_MSG_358",
+ 0x2F98: "ER_IB_MSG_359",
+ 0x2F99: "ER_IB_MSG_360",
+ 0x2F9A: "ER_IB_MSG_361",
+ 0x2F9B: "ER_IB_MSG_362",
+ 0x2F9C: "ER_IB_MSG_363",
+ 0x2F9D: "ER_IB_MSG_364",
+ 0x2F9E: "ER_IB_MSG_365",
+ 0x2F9F: "ER_IB_MSG_366",
+ 0x2FA0: "ER_IB_MSG_367",
+ 0x2FA1: "ER_IB_MSG_368",
+ 0x2FA2: "ER_IB_MSG_369",
+ 0x2FA3: "ER_IB_MSG_370",
+ 0x2FA4: "ER_IB_MSG_371",
+ 0x2FA5: "ER_IB_MSG_372",
+ 0x2FA6: "ER_IB_MSG_373",
+ 0x2FA7: "ER_IB_MSG_374",
+ 0x2FA8: "ER_IB_MSG_375",
+ 0x2FA9: "ER_IB_MSG_376",
+ 0x2FAA: "ER_IB_MSG_377",
+ 0x2FAB: "ER_IB_MSG_378",
+ 0x2FAC: "ER_IB_MSG_379",
+ 0x2FAD: "ER_IB_MSG_380",
+ 0x2FAE: "ER_IB_MSG_381",
+ 0x2FAF: "ER_IB_MSG_382",
+ 0x2FB0: "ER_IB_MSG_383",
+ 0x2FB1: "ER_IB_MSG_384",
+ 0x2FB2: "ER_IB_MSG_385",
+ 0x2FB3: "ER_IB_MSG_386",
+ 0x2FB4: "ER_IB_MSG_387",
+ 0x2FB5: "ER_IB_MSG_388",
+ 0x2FB6: "ER_IB_MSG_389",
+ 0x2FB7: "ER_IB_MSG_390",
+ 0x2FB8: "ER_IB_MSG_391",
+ 0x2FB9: "ER_IB_MSG_392",
+ 0x2FBA: "ER_IB_MSG_393",
+ 0x2FBB: "ER_IB_MSG_394",
+ 0x2FBC: "ER_IB_MSG_395",
+ 0x2FBD: "ER_IB_MSG_396",
+ 0x2FBE: "ER_IB_MSG_397",
+ 0x2FBF: "ER_IB_MSG_398",
+ 0x2FC0: "ER_IB_MSG_399",
+ 0x2FC1: "ER_IB_MSG_400",
+ 0x2FC2: "ER_IB_MSG_401",
+ 0x2FC3: "ER_IB_MSG_402",
+ 0x2FC4: "ER_IB_MSG_403",
+ 0x2FC5: "ER_IB_MSG_404",
+ 0x2FC6: "ER_IB_MSG_405",
+ 0x2FC7: "ER_IB_MSG_406",
+ 0x2FC8: "ER_IB_MSG_407",
+ 0x2FC9: "ER_IB_MSG_408",
+ 0x2FCA: "ER_IB_MSG_409",
+ 0x2FCB: "ER_IB_MSG_410",
+ 0x2FCC: "ER_IB_MSG_411",
+ 0x2FCD: "ER_IB_MSG_412",
+ 0x2FCE: "ER_IB_MSG_413",
+ 0x2FCF: "ER_IB_MSG_414",
+ 0x2FD0: "ER_IB_MSG_415",
+ 0x2FD1: "ER_IB_MSG_416",
+ 0x2FD2: "ER_IB_MSG_417",
+ 0x2FD3: "ER_IB_MSG_418",
+ 0x2FD4: "ER_IB_MSG_419",
+ 0x2FD5: "ER_IB_MSG_420",
+ 0x2FD6: "ER_IB_MSG_421",
+ 0x2FD7: "ER_IB_MSG_422",
+ 0x2FD8: "ER_IB_MSG_423",
+ 0x2FD9: "ER_IB_MSG_424",
+ 0x2FDA: "ER_IB_MSG_425",
+ 0x2FDB: "ER_IB_MSG_426",
+ 0x2FDC: "ER_IB_MSG_427",
+ 0x2FDD: "ER_IB_MSG_428",
+ 0x2FDE: "ER_IB_MSG_429",
+ 0x2FDF: "ER_IB_MSG_430",
+ 0x2FE0: "ER_IB_MSG_431",
+ 0x2FE1: "ER_IB_MSG_432",
+ 0x2FE2: "ER_IB_MSG_433",
+ 0x2FE3: "ER_IB_MSG_434",
+ 0x2FE4: "ER_IB_MSG_435",
+ 0x2FE5: "ER_IB_MSG_436",
+ 0x2FE6: "ER_IB_MSG_437",
+ 0x2FE7: "ER_IB_MSG_438",
+ 0x2FE8: "ER_IB_MSG_439",
+ 0x2FE9: "ER_IB_MSG_440",
+ 0x2FEA: "ER_IB_MSG_441",
+ 0x2FEB: "ER_IB_MSG_442",
+ 0x2FEC: "ER_IB_MSG_443",
+ 0x2FED: "ER_IB_MSG_444",
+ 0x2FEE: "ER_IB_MSG_445",
+ 0x2FEF: "ER_IB_MSG_446",
+ 0x2FF0: "ER_IB_MSG_447",
+ 0x2FF1: "ER_IB_MSG_448",
+ 0x2FF2: "ER_IB_MSG_449",
+ 0x2FF3: "ER_IB_MSG_450",
+ 0x2FF4: "ER_IB_MSG_451",
+ 0x2FF5: "ER_IB_MSG_452",
+ 0x2FF6: "ER_IB_MSG_453",
+ 0x2FF7: "ER_IB_MSG_454",
+ 0x2FF8: "ER_IB_MSG_455",
+ 0x2FF9: "ER_IB_MSG_456",
+ 0x2FFA: "ER_IB_MSG_457",
+ 0x2FFB: "ER_IB_MSG_458",
+ 0x2FFC: "ER_IB_MSG_459",
+ 0x2FFD: "ER_IB_MSG_460",
+ 0x2FFE: "ER_IB_MSG_461",
+ 0x2FFF: "ER_IB_MSG_462",
0x3000: "ER_IB_MSG_463",
0x3001: "ER_IB_MSG_464",
0x3002: "ER_IB_MSG_465",
@@ -3646,12 +3646,12 @@
0x3007: "ER_IB_MSG_470",
0x3008: "ER_IB_MSG_471",
0x3009: "ER_IB_MSG_472",
- 0x300a: "ER_IB_MSG_473",
- 0x300b: "ER_IB_MSG_474",
- 0x300c: "ER_IB_MSG_475",
- 0x300d: "ER_IB_MSG_476",
- 0x300e: "ER_IB_MSG_477",
- 0x300f: "ER_IB_MSG_478",
+ 0x300A: "ER_IB_MSG_473",
+ 0x300B: "ER_IB_MSG_474",
+ 0x300C: "ER_IB_MSG_475",
+ 0x300D: "ER_IB_MSG_476",
+ 0x300E: "ER_IB_MSG_477",
+ 0x300F: "ER_IB_MSG_478",
0x3010: "ER_IB_MSG_479",
0x3011: "ER_IB_MSG_480",
0x3012: "ER_IB_MSG_481",
@@ -3662,12 +3662,12 @@
0x3017: "ER_IB_MSG_486",
0x3018: "ER_IB_MSG_487",
0x3019: "ER_IB_MSG_488",
- 0x301a: "ER_IB_MSG_489",
- 0x301b: "ER_IB_MSG_490",
- 0x301c: "ER_IB_MSG_491",
- 0x301d: "ER_IB_MSG_492",
- 0x301e: "ER_IB_MSG_493",
- 0x301f: "ER_IB_MSG_494",
+ 0x301A: "ER_IB_MSG_489",
+ 0x301B: "ER_IB_MSG_490",
+ 0x301C: "ER_IB_MSG_491",
+ 0x301D: "ER_IB_MSG_492",
+ 0x301E: "ER_IB_MSG_493",
+ 0x301F: "ER_IB_MSG_494",
0x3020: "ER_IB_MSG_495",
0x3021: "ER_IB_MSG_496",
0x3022: "ER_IB_MSG_497",
@@ -3678,12 +3678,12 @@
0x3027: "ER_IB_MSG_502",
0x3028: "ER_IB_MSG_503",
0x3029: "ER_IB_MSG_504",
- 0x302a: "ER_IB_MSG_505",
- 0x302b: "ER_IB_MSG_506",
- 0x302c: "ER_IB_MSG_507",
- 0x302d: "ER_IB_MSG_508",
- 0x302e: "ER_IB_MSG_509",
- 0x302f: "ER_IB_MSG_510",
+ 0x302A: "ER_IB_MSG_505",
+ 0x302B: "ER_IB_MSG_506",
+ 0x302C: "ER_IB_MSG_507",
+ 0x302D: "ER_IB_MSG_508",
+ 0x302E: "ER_IB_MSG_509",
+ 0x302F: "ER_IB_MSG_510",
0x3030: "ER_IB_MSG_511",
0x3031: "ER_IB_MSG_512",
0x3032: "ER_IB_MSG_513",
@@ -3694,12 +3694,12 @@
0x3037: "ER_IB_MSG_518",
0x3038: "ER_IB_MSG_519",
0x3039: "ER_IB_MSG_520",
- 0x303a: "ER_IB_MSG_521",
- 0x303b: "ER_IB_MSG_522",
- 0x303c: "ER_IB_MSG_523",
- 0x303d: "ER_IB_MSG_524",
- 0x303e: "ER_IB_MSG_525",
- 0x303f: "ER_IB_MSG_526",
+ 0x303A: "ER_IB_MSG_521",
+ 0x303B: "ER_IB_MSG_522",
+ 0x303C: "ER_IB_MSG_523",
+ 0x303D: "ER_IB_MSG_524",
+ 0x303E: "ER_IB_MSG_525",
+ 0x303F: "ER_IB_MSG_526",
0x3040: "ER_IB_MSG_527",
0x3041: "ER_IB_MSG_528",
0x3042: "ER_IB_MSG_529",
@@ -3710,12 +3710,12 @@
0x3047: "ER_IB_MSG_534",
0x3048: "ER_IB_MSG_535",
0x3049: "ER_IB_MSG_536",
- 0x304a: "ER_IB_MSG_537",
- 0x304b: "ER_IB_MSG_538",
- 0x304c: "ER_IB_MSG_539",
- 0x304d: "ER_IB_MSG_540",
- 0x304e: "ER_IB_MSG_541",
- 0x304f: "ER_IB_MSG_542",
+ 0x304A: "ER_IB_MSG_537",
+ 0x304B: "ER_IB_MSG_538",
+ 0x304C: "ER_IB_MSG_539",
+ 0x304D: "ER_IB_MSG_540",
+ 0x304E: "ER_IB_MSG_541",
+ 0x304F: "ER_IB_MSG_542",
0x3050: "ER_IB_MSG_543",
0x3051: "ER_IB_MSG_544",
0x3052: "ER_IB_MSG_545",
@@ -3726,12 +3726,12 @@
0x3057: "ER_IB_MSG_550",
0x3058: "ER_IB_MSG_551",
0x3059: "ER_IB_MSG_552",
- 0x305a: "ER_IB_MSG_553",
- 0x305b: "ER_IB_MSG_554",
- 0x305c: "ER_IB_MSG_555",
- 0x305d: "ER_IB_MSG_556",
- 0x305e: "ER_IB_MSG_557",
- 0x305f: "ER_IB_MSG_558",
+ 0x305A: "ER_IB_MSG_553",
+ 0x305B: "ER_IB_MSG_554",
+ 0x305C: "ER_IB_MSG_555",
+ 0x305D: "ER_IB_MSG_556",
+ 0x305E: "ER_IB_MSG_557",
+ 0x305F: "ER_IB_MSG_558",
0x3060: "ER_IB_MSG_559",
0x3061: "ER_IB_MSG_560",
0x3062: "ER_IB_MSG_561",
@@ -3742,12 +3742,12 @@
0x3067: "ER_IB_MSG_566",
0x3068: "ER_IB_MSG_567",
0x3069: "ER_IB_MSG_568",
- 0x306a: "ER_IB_MSG_569",
- 0x306b: "ER_IB_MSG_570",
- 0x306c: "ER_IB_MSG_571",
- 0x306d: "ER_IB_MSG_572",
- 0x306e: "ER_IB_MSG_573",
- 0x306f: "ER_IB_MSG_574",
+ 0x306A: "ER_IB_MSG_569",
+ 0x306B: "ER_IB_MSG_570",
+ 0x306C: "ER_IB_MSG_571",
+ 0x306D: "ER_IB_MSG_572",
+ 0x306E: "ER_IB_MSG_573",
+ 0x306F: "ER_IB_MSG_574",
0x3070: "ER_IB_MSG_575",
0x3071: "ER_IB_MSG_576",
0x3072: "ER_IB_MSG_577",
@@ -3758,12 +3758,12 @@
0x3077: "ER_IB_MSG_582",
0x3078: "ER_IB_MSG_583",
0x3079: "ER_IB_MSG_584",
- 0x307a: "ER_IB_MSG_585",
- 0x307b: "ER_IB_MSG_586",
- 0x307c: "ER_IB_MSG_587",
- 0x307d: "ER_IB_MSG_588",
- 0x307e: "ER_IB_MSG_589",
- 0x307f: "ER_IB_MSG_590",
+ 0x307A: "ER_IB_MSG_585",
+ 0x307B: "ER_IB_MSG_586",
+ 0x307C: "ER_IB_MSG_587",
+ 0x307D: "ER_IB_MSG_588",
+ 0x307E: "ER_IB_MSG_589",
+ 0x307F: "ER_IB_MSG_590",
0x3080: "ER_IB_MSG_591",
0x3081: "ER_IB_MSG_592",
0x3082: "ER_IB_MSG_593",
@@ -3774,12 +3774,12 @@
0x3087: "ER_IB_MSG_598",
0x3088: "ER_IB_MSG_599",
0x3089: "ER_IB_MSG_600",
- 0x308a: "ER_IB_MSG_601",
- 0x308b: "ER_IB_MSG_602",
- 0x308c: "ER_IB_MSG_603",
- 0x308d: "ER_IB_MSG_604",
- 0x308e: "ER_IB_MSG_605",
- 0x308f: "ER_IB_MSG_606",
+ 0x308A: "ER_IB_MSG_601",
+ 0x308B: "ER_IB_MSG_602",
+ 0x308C: "ER_IB_MSG_603",
+ 0x308D: "ER_IB_MSG_604",
+ 0x308E: "ER_IB_MSG_605",
+ 0x308F: "ER_IB_MSG_606",
0x3090: "ER_IB_MSG_607",
0x3091: "ER_IB_MSG_608",
0x3092: "ER_IB_MSG_609",
@@ -3790,108 +3790,108 @@
0x3097: "ER_IB_MSG_614",
0x3098: "ER_IB_MSG_615",
0x3099: "ER_IB_MSG_616",
- 0x309a: "ER_IB_MSG_617",
- 0x309b: "ER_IB_MSG_618",
- 0x309c: "ER_IB_MSG_619",
- 0x309d: "ER_IB_MSG_620",
- 0x309e: "ER_IB_MSG_621",
- 0x309f: "ER_IB_MSG_622",
- 0x30a0: "ER_IB_MSG_623",
- 0x30a1: "ER_IB_MSG_624",
- 0x30a2: "ER_IB_MSG_625",
- 0x30a3: "ER_IB_MSG_626",
- 0x30a4: "ER_IB_MSG_627",
- 0x30a5: "ER_IB_MSG_628",
- 0x30a6: "ER_IB_MSG_629",
- 0x30a7: "ER_IB_MSG_630",
- 0x30a8: "ER_IB_MSG_631",
- 0x30a9: "ER_IB_MSG_632",
- 0x30aa: "ER_IB_MSG_633",
- 0x30ab: "ER_IB_MSG_634",
- 0x30ac: "ER_IB_MSG_635",
- 0x30ad: "ER_IB_MSG_636",
- 0x30ae: "ER_IB_MSG_637",
- 0x30af: "ER_IB_MSG_638",
- 0x30b0: "ER_IB_MSG_639",
- 0x30b1: "ER_IB_MSG_640",
- 0x30b2: "ER_IB_MSG_641",
- 0x30b3: "ER_IB_MSG_642",
- 0x30b4: "ER_IB_MSG_643",
- 0x30b5: "ER_IB_MSG_644",
- 0x30b6: "ER_IB_MSG_645",
- 0x30b7: "ER_IB_MSG_646",
- 0x30b8: "ER_IB_MSG_647",
- 0x30b9: "ER_IB_MSG_648",
- 0x30ba: "ER_IB_MSG_649",
- 0x30bb: "ER_IB_MSG_650",
- 0x30bc: "ER_IB_MSG_651",
- 0x30bd: "ER_IB_MSG_652",
- 0x30be: "ER_IB_MSG_653",
- 0x30bf: "ER_IB_MSG_654",
- 0x30c0: "ER_IB_MSG_655",
- 0x30c1: "ER_IB_MSG_656",
- 0x30c2: "ER_IB_MSG_657",
- 0x30c3: "ER_IB_MSG_658",
- 0x30c4: "ER_IB_MSG_659",
- 0x30c5: "ER_IB_MSG_660",
- 0x30c6: "ER_IB_MSG_661",
- 0x30c7: "ER_IB_MSG_662",
- 0x30c8: "ER_IB_MSG_663",
- 0x30c9: "ER_IB_MSG_664",
- 0x30ca: "ER_IB_MSG_665",
- 0x30cb: "ER_IB_MSG_666",
- 0x30cc: "ER_IB_MSG_667",
- 0x30cd: "ER_IB_MSG_668",
- 0x30ce: "ER_IB_MSG_669",
- 0x30cf: "ER_IB_MSG_670",
- 0x30d0: "ER_IB_MSG_671",
- 0x30d1: "ER_IB_MSG_672",
- 0x30d2: "ER_IB_MSG_673",
- 0x30d3: "ER_IB_MSG_674",
- 0x30d4: "ER_IB_MSG_675",
- 0x30d5: "ER_IB_MSG_676",
- 0x30d6: "ER_IB_MSG_677",
- 0x30d7: "ER_IB_MSG_678",
- 0x30d8: "ER_IB_MSG_679",
- 0x30d9: "ER_IB_MSG_680",
- 0x30da: "ER_IB_MSG_681",
- 0x30db: "ER_IB_MSG_682",
- 0x30dc: "ER_IB_MSG_683",
- 0x30dd: "ER_IB_MSG_684",
- 0x30de: "ER_IB_MSG_685",
- 0x30df: "ER_IB_MSG_686",
- 0x30e0: "ER_IB_MSG_687",
- 0x30e1: "ER_IB_MSG_688",
- 0x30e2: "ER_IB_MSG_689",
- 0x30e3: "ER_IB_MSG_690",
- 0x30e4: "ER_IB_MSG_691",
- 0x30e5: "ER_IB_MSG_692",
- 0x30e6: "ER_IB_MSG_693",
- 0x30e7: "ER_IB_MSG_694",
- 0x30e8: "ER_IB_MSG_695",
- 0x30e9: "ER_IB_MSG_696",
- 0x30ea: "ER_IB_MSG_697",
- 0x30eb: "ER_IB_MSG_698",
- 0x30ec: "ER_IB_MSG_699",
- 0x30ed: "ER_IB_MSG_700",
- 0x30ee: "ER_IB_MSG_701",
- 0x30ef: "ER_IB_MSG_702",
- 0x30f0: "ER_IB_MSG_703",
- 0x30f1: "ER_IB_MSG_704",
- 0x30f2: "ER_IB_MSG_705",
- 0x30f3: "ER_IB_MSG_706",
- 0x30f4: "ER_IB_MSG_707",
- 0x30f5: "ER_IB_MSG_708",
- 0x30f6: "ER_IB_MSG_709",
- 0x30f7: "ER_IB_MSG_710",
- 0x30f8: "ER_IB_MSG_711",
- 0x30f9: "ER_IB_MSG_712",
- 0x30fa: "ER_IB_MSG_713",
- 0x30fb: "ER_IB_MSG_714",
- 0x30fc: "ER_IB_MSG_715",
- 0x30fd: "ER_IB_MSG_716",
- 0x30fe: "ER_IB_MSG_717",
- 0x30ff: "ER_IB_MSG_718",
+ 0x309A: "ER_IB_MSG_617",
+ 0x309B: "ER_IB_MSG_618",
+ 0x309C: "ER_IB_MSG_619",
+ 0x309D: "ER_IB_MSG_620",
+ 0x309E: "ER_IB_MSG_621",
+ 0x309F: "ER_IB_MSG_622",
+ 0x30A0: "ER_IB_MSG_623",
+ 0x30A1: "ER_IB_MSG_624",
+ 0x30A2: "ER_IB_MSG_625",
+ 0x30A3: "ER_IB_MSG_626",
+ 0x30A4: "ER_IB_MSG_627",
+ 0x30A5: "ER_IB_MSG_628",
+ 0x30A6: "ER_IB_MSG_629",
+ 0x30A7: "ER_IB_MSG_630",
+ 0x30A8: "ER_IB_MSG_631",
+ 0x30A9: "ER_IB_MSG_632",
+ 0x30AA: "ER_IB_MSG_633",
+ 0x30AB: "ER_IB_MSG_634",
+ 0x30AC: "ER_IB_MSG_635",
+ 0x30AD: "ER_IB_MSG_636",
+ 0x30AE: "ER_IB_MSG_637",
+ 0x30AF: "ER_IB_MSG_638",
+ 0x30B0: "ER_IB_MSG_639",
+ 0x30B1: "ER_IB_MSG_640",
+ 0x30B2: "ER_IB_MSG_641",
+ 0x30B3: "ER_IB_MSG_642",
+ 0x30B4: "ER_IB_MSG_643",
+ 0x30B5: "ER_IB_MSG_644",
+ 0x30B6: "ER_IB_MSG_645",
+ 0x30B7: "ER_IB_MSG_646",
+ 0x30B8: "ER_IB_MSG_647",
+ 0x30B9: "ER_IB_MSG_648",
+ 0x30BA: "ER_IB_MSG_649",
+ 0x30BB: "ER_IB_MSG_650",
+ 0x30BC: "ER_IB_MSG_651",
+ 0x30BD: "ER_IB_MSG_652",
+ 0x30BE: "ER_IB_MSG_653",
+ 0x30BF: "ER_IB_MSG_654",
+ 0x30C0: "ER_IB_MSG_655",
+ 0x30C1: "ER_IB_MSG_656",
+ 0x30C2: "ER_IB_MSG_657",
+ 0x30C3: "ER_IB_MSG_658",
+ 0x30C4: "ER_IB_MSG_659",
+ 0x30C5: "ER_IB_MSG_660",
+ 0x30C6: "ER_IB_MSG_661",
+ 0x30C7: "ER_IB_MSG_662",
+ 0x30C8: "ER_IB_MSG_663",
+ 0x30C9: "ER_IB_MSG_664",
+ 0x30CA: "ER_IB_MSG_665",
+ 0x30CB: "ER_IB_MSG_666",
+ 0x30CC: "ER_IB_MSG_667",
+ 0x30CD: "ER_IB_MSG_668",
+ 0x30CE: "ER_IB_MSG_669",
+ 0x30CF: "ER_IB_MSG_670",
+ 0x30D0: "ER_IB_MSG_671",
+ 0x30D1: "ER_IB_MSG_672",
+ 0x30D2: "ER_IB_MSG_673",
+ 0x30D3: "ER_IB_MSG_674",
+ 0x30D4: "ER_IB_MSG_675",
+ 0x30D5: "ER_IB_MSG_676",
+ 0x30D6: "ER_IB_MSG_677",
+ 0x30D7: "ER_IB_MSG_678",
+ 0x30D8: "ER_IB_MSG_679",
+ 0x30D9: "ER_IB_MSG_680",
+ 0x30DA: "ER_IB_MSG_681",
+ 0x30DB: "ER_IB_MSG_682",
+ 0x30DC: "ER_IB_MSG_683",
+ 0x30DD: "ER_IB_MSG_684",
+ 0x30DE: "ER_IB_MSG_685",
+ 0x30DF: "ER_IB_MSG_686",
+ 0x30E0: "ER_IB_MSG_687",
+ 0x30E1: "ER_IB_MSG_688",
+ 0x30E2: "ER_IB_MSG_689",
+ 0x30E3: "ER_IB_MSG_690",
+ 0x30E4: "ER_IB_MSG_691",
+ 0x30E5: "ER_IB_MSG_692",
+ 0x30E6: "ER_IB_MSG_693",
+ 0x30E7: "ER_IB_MSG_694",
+ 0x30E8: "ER_IB_MSG_695",
+ 0x30E9: "ER_IB_MSG_696",
+ 0x30EA: "ER_IB_MSG_697",
+ 0x30EB: "ER_IB_MSG_698",
+ 0x30EC: "ER_IB_MSG_699",
+ 0x30ED: "ER_IB_MSG_700",
+ 0x30EE: "ER_IB_MSG_701",
+ 0x30EF: "ER_IB_MSG_702",
+ 0x30F0: "ER_IB_MSG_703",
+ 0x30F1: "ER_IB_MSG_704",
+ 0x30F2: "ER_IB_MSG_705",
+ 0x30F3: "ER_IB_MSG_706",
+ 0x30F4: "ER_IB_MSG_707",
+ 0x30F5: "ER_IB_MSG_708",
+ 0x30F6: "ER_IB_MSG_709",
+ 0x30F7: "ER_IB_MSG_710",
+ 0x30F8: "ER_IB_MSG_711",
+ 0x30F9: "ER_IB_MSG_712",
+ 0x30FA: "ER_IB_MSG_713",
+ 0x30FB: "ER_IB_MSG_714",
+ 0x30FC: "ER_IB_MSG_715",
+ 0x30FD: "ER_IB_MSG_716",
+ 0x30FE: "ER_IB_MSG_717",
+ 0x30FF: "ER_IB_MSG_718",
0x3100: "ER_IB_MSG_719",
0x3101: "ER_IB_MSG_720",
0x3102: "ER_IB_MSG_721",
@@ -3902,12 +3902,12 @@
0x3107: "ER_IB_MSG_726",
0x3108: "ER_IB_MSG_727",
0x3109: "ER_IB_MSG_728",
- 0x310a: "ER_IB_MSG_729",
- 0x310b: "ER_IB_MSG_730",
- 0x310c: "ER_IB_MSG_731",
- 0x310d: "ER_IB_MSG_732",
- 0x310e: "ER_IB_MSG_733",
- 0x310f: "ER_IB_MSG_734",
+ 0x310A: "ER_IB_MSG_729",
+ 0x310B: "ER_IB_MSG_730",
+ 0x310C: "ER_IB_MSG_731",
+ 0x310D: "ER_IB_MSG_732",
+ 0x310E: "ER_IB_MSG_733",
+ 0x310F: "ER_IB_MSG_734",
0x3110: "ER_IB_MSG_735",
0x3111: "ER_IB_MSG_736",
0x3112: "ER_IB_MSG_737",
@@ -3918,12 +3918,12 @@
0x3117: "ER_IB_MSG_742",
0x3118: "ER_IB_MSG_743",
0x3119: "ER_IB_MSG_744",
- 0x311a: "ER_IB_MSG_745",
- 0x311b: "ER_IB_MSG_746",
- 0x311c: "ER_IB_MSG_747",
- 0x311d: "ER_IB_MSG_748",
- 0x311e: "ER_IB_MSG_749",
- 0x311f: "ER_IB_MSG_750",
+ 0x311A: "ER_IB_MSG_745",
+ 0x311B: "ER_IB_MSG_746",
+ 0x311C: "ER_IB_MSG_747",
+ 0x311D: "ER_IB_MSG_748",
+ 0x311E: "ER_IB_MSG_749",
+ 0x311F: "ER_IB_MSG_750",
0x3120: "ER_IB_MSG_751",
0x3121: "ER_IB_MSG_752",
0x3122: "ER_IB_MSG_753",
@@ -3934,12 +3934,12 @@
0x3127: "ER_IB_MSG_758",
0x3128: "ER_IB_MSG_759",
0x3129: "ER_IB_MSG_760",
- 0x312a: "ER_IB_MSG_761",
- 0x312b: "ER_IB_MSG_762",
- 0x312c: "ER_IB_MSG_763",
- 0x312d: "ER_IB_MSG_764",
- 0x312e: "ER_IB_MSG_765",
- 0x312f: "ER_IB_MSG_766",
+ 0x312A: "ER_IB_MSG_761",
+ 0x312B: "ER_IB_MSG_762",
+ 0x312C: "ER_IB_MSG_763",
+ 0x312D: "ER_IB_MSG_764",
+ 0x312E: "ER_IB_MSG_765",
+ 0x312F: "ER_IB_MSG_766",
0x3130: "ER_IB_MSG_767",
0x3131: "ER_IB_MSG_768",
0x3132: "ER_IB_MSG_769",
@@ -3950,12 +3950,12 @@
0x3137: "ER_IB_MSG_774",
0x3138: "ER_IB_MSG_775",
0x3139: "ER_IB_MSG_776",
- 0x313a: "ER_IB_MSG_777",
- 0x313b: "ER_IB_MSG_778",
- 0x313c: "ER_IB_MSG_779",
- 0x313d: "ER_IB_MSG_780",
- 0x313e: "ER_IB_MSG_781",
- 0x313f: "ER_IB_MSG_782",
+ 0x313A: "ER_IB_MSG_777",
+ 0x313B: "ER_IB_MSG_778",
+ 0x313C: "ER_IB_MSG_779",
+ 0x313D: "ER_IB_MSG_780",
+ 0x313E: "ER_IB_MSG_781",
+ 0x313F: "ER_IB_MSG_782",
0x3140: "ER_IB_MSG_783",
0x3141: "ER_IB_MSG_784",
0x3142: "ER_IB_MSG_785",
@@ -3966,12 +3966,12 @@
0x3147: "ER_IB_MSG_790",
0x3148: "ER_IB_MSG_791",
0x3149: "ER_IB_MSG_792",
- 0x314a: "ER_IB_MSG_793",
- 0x314b: "ER_IB_MSG_794",
- 0x314c: "ER_IB_MSG_795",
- 0x314d: "ER_IB_MSG_796",
- 0x314e: "ER_IB_MSG_797",
- 0x314f: "ER_IB_MSG_798",
+ 0x314A: "ER_IB_MSG_793",
+ 0x314B: "ER_IB_MSG_794",
+ 0x314C: "ER_IB_MSG_795",
+ 0x314D: "ER_IB_MSG_796",
+ 0x314E: "ER_IB_MSG_797",
+ 0x314F: "ER_IB_MSG_798",
0x3150: "ER_IB_MSG_799",
0x3151: "ER_IB_MSG_800",
0x3152: "ER_IB_MSG_801",
@@ -3982,12 +3982,12 @@
0x3157: "ER_IB_MSG_806",
0x3158: "ER_IB_MSG_807",
0x3159: "ER_IB_MSG_808",
- 0x315a: "ER_IB_MSG_809",
- 0x315b: "ER_IB_MSG_810",
- 0x315c: "ER_IB_MSG_811",
- 0x315d: "ER_IB_MSG_812",
- 0x315e: "ER_IB_MSG_813",
- 0x315f: "ER_IB_MSG_814",
+ 0x315A: "ER_IB_MSG_809",
+ 0x315B: "ER_IB_MSG_810",
+ 0x315C: "ER_IB_MSG_811",
+ 0x315D: "ER_IB_MSG_812",
+ 0x315E: "ER_IB_MSG_813",
+ 0x315F: "ER_IB_MSG_814",
0x3160: "ER_IB_MSG_815",
0x3161: "ER_IB_MSG_816",
0x3162: "ER_IB_MSG_817",
@@ -3998,12 +3998,12 @@
0x3167: "ER_IB_MSG_822",
0x3168: "ER_IB_MSG_823",
0x3169: "ER_IB_MSG_824",
- 0x316a: "ER_IB_MSG_825",
- 0x316b: "ER_IB_MSG_826",
- 0x316c: "ER_IB_MSG_827",
- 0x316d: "ER_IB_MSG_828",
- 0x316e: "ER_IB_MSG_829",
- 0x316f: "ER_IB_MSG_830",
+ 0x316A: "ER_IB_MSG_825",
+ 0x316B: "ER_IB_MSG_826",
+ 0x316C: "ER_IB_MSG_827",
+ 0x316D: "ER_IB_MSG_828",
+ 0x316E: "ER_IB_MSG_829",
+ 0x316F: "ER_IB_MSG_830",
0x3170: "ER_IB_MSG_831",
0x3171: "ER_IB_MSG_832",
0x3172: "ER_IB_MSG_833",
@@ -4014,12 +4014,12 @@
0x3177: "ER_IB_MSG_838",
0x3178: "ER_IB_MSG_839",
0x3179: "ER_IB_MSG_840",
- 0x317a: "ER_IB_MSG_841",
- 0x317b: "ER_IB_MSG_842",
- 0x317c: "ER_IB_MSG_843",
- 0x317d: "ER_IB_MSG_844",
- 0x317e: "ER_IB_MSG_845",
- 0x317f: "ER_IB_MSG_846",
+ 0x317A: "ER_IB_MSG_841",
+ 0x317B: "ER_IB_MSG_842",
+ 0x317C: "ER_IB_MSG_843",
+ 0x317D: "ER_IB_MSG_844",
+ 0x317E: "ER_IB_MSG_845",
+ 0x317F: "ER_IB_MSG_846",
0x3180: "ER_IB_MSG_847",
0x3181: "ER_IB_MSG_848",
0x3182: "ER_IB_MSG_849",
@@ -4030,12 +4030,12 @@
0x3187: "ER_IB_MSG_854",
0x3188: "ER_IB_MSG_855",
0x3189: "ER_IB_MSG_856",
- 0x318a: "ER_IB_MSG_857",
- 0x318b: "ER_IB_MSG_858",
- 0x318c: "ER_IB_MSG_859",
- 0x318d: "ER_IB_MSG_860",
- 0x318e: "ER_IB_MSG_861",
- 0x318f: "ER_IB_MSG_862",
+ 0x318A: "ER_IB_MSG_857",
+ 0x318B: "ER_IB_MSG_858",
+ 0x318C: "ER_IB_MSG_859",
+ 0x318D: "ER_IB_MSG_860",
+ 0x318E: "ER_IB_MSG_861",
+ 0x318F: "ER_IB_MSG_862",
0x3190: "ER_IB_MSG_863",
0x3191: "ER_IB_MSG_864",
0x3192: "ER_IB_MSG_865",
@@ -4046,108 +4046,108 @@
0x3197: "ER_IB_MSG_870",
0x3198: "ER_IB_MSG_871",
0x3199: "ER_IB_MSG_872",
- 0x319a: "ER_IB_MSG_873",
- 0x319b: "ER_IB_MSG_874",
- 0x319c: "ER_IB_MSG_875",
- 0x319d: "ER_IB_MSG_876",
- 0x319e: "ER_IB_MSG_877",
- 0x319f: "ER_IB_MSG_878",
- 0x31a0: "ER_IB_MSG_879",
- 0x31a1: "ER_IB_MSG_880",
- 0x31a2: "ER_IB_MSG_881",
- 0x31a3: "ER_IB_MSG_882",
- 0x31a4: "ER_IB_MSG_883",
- 0x31a5: "ER_IB_MSG_884",
- 0x31a6: "ER_IB_MSG_885",
- 0x31a7: "ER_IB_MSG_886",
- 0x31a8: "ER_IB_MSG_887",
- 0x31a9: "ER_IB_MSG_888",
- 0x31aa: "ER_IB_MSG_889",
- 0x31ab: "ER_IB_MSG_890",
- 0x31ac: "ER_IB_MSG_891",
- 0x31ad: "ER_IB_MSG_892",
- 0x31ae: "ER_IB_MSG_893",
- 0x31af: "ER_IB_MSG_894",
- 0x31b0: "ER_IB_MSG_895",
- 0x31b1: "ER_IB_MSG_896",
- 0x31b2: "ER_IB_MSG_897",
- 0x31b3: "ER_IB_MSG_898",
- 0x31b4: "ER_IB_MSG_899",
- 0x31b5: "ER_IB_MSG_900",
- 0x31b6: "ER_IB_MSG_901",
- 0x31b7: "ER_IB_MSG_902",
- 0x31b8: "ER_IB_MSG_903",
- 0x31b9: "ER_IB_MSG_904",
- 0x31ba: "ER_IB_MSG_905",
- 0x31bb: "ER_IB_MSG_906",
- 0x31bc: "ER_IB_MSG_907",
- 0x31bd: "ER_IB_MSG_908",
- 0x31be: "ER_IB_MSG_909",
- 0x31bf: "ER_IB_MSG_910",
- 0x31c0: "ER_IB_MSG_911",
- 0x31c1: "ER_IB_MSG_912",
- 0x31c2: "ER_IB_MSG_913",
- 0x31c3: "ER_IB_MSG_914",
- 0x31c4: "ER_IB_MSG_915",
- 0x31c5: "ER_IB_MSG_916",
- 0x31c6: "ER_IB_MSG_917",
- 0x31c7: "ER_IB_MSG_918",
- 0x31c8: "ER_IB_MSG_919",
- 0x31c9: "ER_IB_MSG_920",
- 0x31ca: "ER_IB_MSG_921",
- 0x31cb: "ER_IB_MSG_922",
- 0x31cc: "ER_IB_MSG_923",
- 0x31cd: "ER_IB_MSG_924",
- 0x31ce: "ER_IB_MSG_925",
- 0x31cf: "ER_IB_MSG_926",
- 0x31d0: "ER_IB_MSG_927",
- 0x31d1: "ER_IB_MSG_928",
- 0x31d2: "ER_IB_MSG_929",
- 0x31d3: "ER_IB_MSG_930",
- 0x31d4: "ER_IB_MSG_931",
- 0x31d5: "ER_IB_MSG_932",
- 0x31d6: "ER_IB_MSG_933",
- 0x31d7: "ER_IB_MSG_934",
- 0x31d8: "ER_IB_MSG_935",
- 0x31d9: "ER_IB_MSG_936",
- 0x31da: "ER_IB_MSG_937",
- 0x31db: "ER_IB_MSG_938",
- 0x31dc: "ER_IB_MSG_939",
- 0x31dd: "ER_IB_MSG_940",
- 0x31de: "ER_IB_MSG_941",
- 0x31df: "ER_IB_MSG_942",
- 0x31e0: "ER_IB_MSG_943",
- 0x31e1: "ER_IB_MSG_944",
- 0x31e2: "ER_IB_MSG_945",
- 0x31e3: "ER_IB_MSG_946",
- 0x31e4: "ER_IB_MSG_947",
- 0x31e5: "ER_IB_MSG_948",
- 0x31e6: "ER_IB_MSG_949",
- 0x31e7: "ER_IB_MSG_950",
- 0x31e8: "ER_IB_MSG_951",
- 0x31e9: "ER_IB_MSG_952",
- 0x31ea: "ER_IB_MSG_953",
- 0x31eb: "ER_IB_MSG_954",
- 0x31ec: "ER_IB_MSG_955",
- 0x31ed: "ER_IB_MSG_956",
- 0x31ee: "ER_IB_MSG_957",
- 0x31ef: "ER_IB_MSG_958",
- 0x31f0: "ER_IB_MSG_959",
- 0x31f1: "ER_IB_MSG_960",
- 0x31f2: "ER_IB_MSG_961",
- 0x31f3: "ER_IB_MSG_962",
- 0x31f4: "ER_IB_MSG_963",
- 0x31f5: "ER_IB_MSG_964",
- 0x31f6: "ER_IB_MSG_965",
- 0x31f7: "ER_IB_MSG_966",
- 0x31f8: "ER_IB_MSG_967",
- 0x31f9: "ER_IB_MSG_968",
- 0x31fa: "ER_IB_MSG_969",
- 0x31fb: "ER_IB_MSG_970",
- 0x31fc: "ER_IB_MSG_971",
- 0x31fd: "ER_IB_MSG_972",
- 0x31fe: "ER_IB_MSG_973",
- 0x31ff: "ER_IB_MSG_974",
+ 0x319A: "ER_IB_MSG_873",
+ 0x319B: "ER_IB_MSG_874",
+ 0x319C: "ER_IB_MSG_875",
+ 0x319D: "ER_IB_MSG_876",
+ 0x319E: "ER_IB_MSG_877",
+ 0x319F: "ER_IB_MSG_878",
+ 0x31A0: "ER_IB_MSG_879",
+ 0x31A1: "ER_IB_MSG_880",
+ 0x31A2: "ER_IB_MSG_881",
+ 0x31A3: "ER_IB_MSG_882",
+ 0x31A4: "ER_IB_MSG_883",
+ 0x31A5: "ER_IB_MSG_884",
+ 0x31A6: "ER_IB_MSG_885",
+ 0x31A7: "ER_IB_MSG_886",
+ 0x31A8: "ER_IB_MSG_887",
+ 0x31A9: "ER_IB_MSG_888",
+ 0x31AA: "ER_IB_MSG_889",
+ 0x31AB: "ER_IB_MSG_890",
+ 0x31AC: "ER_IB_MSG_891",
+ 0x31AD: "ER_IB_MSG_892",
+ 0x31AE: "ER_IB_MSG_893",
+ 0x31AF: "ER_IB_MSG_894",
+ 0x31B0: "ER_IB_MSG_895",
+ 0x31B1: "ER_IB_MSG_896",
+ 0x31B2: "ER_IB_MSG_897",
+ 0x31B3: "ER_IB_MSG_898",
+ 0x31B4: "ER_IB_MSG_899",
+ 0x31B5: "ER_IB_MSG_900",
+ 0x31B6: "ER_IB_MSG_901",
+ 0x31B7: "ER_IB_MSG_902",
+ 0x31B8: "ER_IB_MSG_903",
+ 0x31B9: "ER_IB_MSG_904",
+ 0x31BA: "ER_IB_MSG_905",
+ 0x31BB: "ER_IB_MSG_906",
+ 0x31BC: "ER_IB_MSG_907",
+ 0x31BD: "ER_IB_MSG_908",
+ 0x31BE: "ER_IB_MSG_909",
+ 0x31BF: "ER_IB_MSG_910",
+ 0x31C0: "ER_IB_MSG_911",
+ 0x31C1: "ER_IB_MSG_912",
+ 0x31C2: "ER_IB_MSG_913",
+ 0x31C3: "ER_IB_MSG_914",
+ 0x31C4: "ER_IB_MSG_915",
+ 0x31C5: "ER_IB_MSG_916",
+ 0x31C6: "ER_IB_MSG_917",
+ 0x31C7: "ER_IB_MSG_918",
+ 0x31C8: "ER_IB_MSG_919",
+ 0x31C9: "ER_IB_MSG_920",
+ 0x31CA: "ER_IB_MSG_921",
+ 0x31CB: "ER_IB_MSG_922",
+ 0x31CC: "ER_IB_MSG_923",
+ 0x31CD: "ER_IB_MSG_924",
+ 0x31CE: "ER_IB_MSG_925",
+ 0x31CF: "ER_IB_MSG_926",
+ 0x31D0: "ER_IB_MSG_927",
+ 0x31D1: "ER_IB_MSG_928",
+ 0x31D2: "ER_IB_MSG_929",
+ 0x31D3: "ER_IB_MSG_930",
+ 0x31D4: "ER_IB_MSG_931",
+ 0x31D5: "ER_IB_MSG_932",
+ 0x31D6: "ER_IB_MSG_933",
+ 0x31D7: "ER_IB_MSG_934",
+ 0x31D8: "ER_IB_MSG_935",
+ 0x31D9: "ER_IB_MSG_936",
+ 0x31DA: "ER_IB_MSG_937",
+ 0x31DB: "ER_IB_MSG_938",
+ 0x31DC: "ER_IB_MSG_939",
+ 0x31DD: "ER_IB_MSG_940",
+ 0x31DE: "ER_IB_MSG_941",
+ 0x31DF: "ER_IB_MSG_942",
+ 0x31E0: "ER_IB_MSG_943",
+ 0x31E1: "ER_IB_MSG_944",
+ 0x31E2: "ER_IB_MSG_945",
+ 0x31E3: "ER_IB_MSG_946",
+ 0x31E4: "ER_IB_MSG_947",
+ 0x31E5: "ER_IB_MSG_948",
+ 0x31E6: "ER_IB_MSG_949",
+ 0x31E7: "ER_IB_MSG_950",
+ 0x31E8: "ER_IB_MSG_951",
+ 0x31E9: "ER_IB_MSG_952",
+ 0x31EA: "ER_IB_MSG_953",
+ 0x31EB: "ER_IB_MSG_954",
+ 0x31EC: "ER_IB_MSG_955",
+ 0x31ED: "ER_IB_MSG_956",
+ 0x31EE: "ER_IB_MSG_957",
+ 0x31EF: "ER_IB_MSG_958",
+ 0x31F0: "ER_IB_MSG_959",
+ 0x31F1: "ER_IB_MSG_960",
+ 0x31F2: "ER_IB_MSG_961",
+ 0x31F3: "ER_IB_MSG_962",
+ 0x31F4: "ER_IB_MSG_963",
+ 0x31F5: "ER_IB_MSG_964",
+ 0x31F6: "ER_IB_MSG_965",
+ 0x31F7: "ER_IB_MSG_966",
+ 0x31F8: "ER_IB_MSG_967",
+ 0x31F9: "ER_IB_MSG_968",
+ 0x31FA: "ER_IB_MSG_969",
+ 0x31FB: "ER_IB_MSG_970",
+ 0x31FC: "ER_IB_MSG_971",
+ 0x31FD: "ER_IB_MSG_972",
+ 0x31FE: "ER_IB_MSG_973",
+ 0x31FF: "ER_IB_MSG_974",
0x3200: "ER_IB_MSG_975",
0x3201: "ER_IB_MSG_976",
0x3202: "ER_IB_MSG_977",
@@ -4158,12 +4158,12 @@
0x3207: "ER_IB_MSG_982",
0x3208: "ER_IB_MSG_983",
0x3209: "ER_IB_MSG_984",
- 0x320a: "ER_IB_MSG_985",
- 0x320b: "ER_IB_MSG_986",
- 0x320c: "ER_IB_MSG_987",
- 0x320d: "ER_IB_MSG_988",
- 0x320e: "ER_IB_MSG_989",
- 0x320f: "ER_IB_MSG_990",
+ 0x320A: "ER_IB_MSG_985",
+ 0x320B: "ER_IB_MSG_986",
+ 0x320C: "ER_IB_MSG_987",
+ 0x320D: "ER_IB_MSG_988",
+ 0x320E: "ER_IB_MSG_989",
+ 0x320F: "ER_IB_MSG_990",
0x3210: "ER_IB_MSG_991",
0x3211: "ER_IB_MSG_992",
0x3212: "ER_IB_MSG_993",
@@ -4174,12 +4174,12 @@
0x3217: "ER_IB_MSG_998",
0x3218: "ER_IB_MSG_999",
0x3219: "ER_IB_MSG_1000",
- 0x321a: "ER_IB_MSG_1001",
- 0x321b: "ER_IB_MSG_1002",
- 0x321c: "ER_IB_MSG_1003",
- 0x321d: "ER_IB_MSG_1004",
- 0x321e: "ER_IB_MSG_1005",
- 0x321f: "ER_IB_MSG_1006",
+ 0x321A: "ER_IB_MSG_1001",
+ 0x321B: "ER_IB_MSG_1002",
+ 0x321C: "ER_IB_MSG_1003",
+ 0x321D: "ER_IB_MSG_1004",
+ 0x321E: "ER_IB_MSG_1005",
+ 0x321F: "ER_IB_MSG_1006",
0x3220: "ER_IB_MSG_1007",
0x3221: "ER_IB_MSG_1008",
0x3222: "ER_IB_MSG_1009",
@@ -4190,12 +4190,12 @@
0x3227: "ER_IB_MSG_1014",
0x3228: "ER_IB_MSG_1015",
0x3229: "ER_IB_MSG_1016",
- 0x322a: "ER_IB_MSG_1017",
- 0x322b: "ER_IB_MSG_1018",
- 0x322c: "ER_IB_MSG_1019",
- 0x322d: "ER_IB_MSG_1020",
- 0x322e: "ER_IB_MSG_1021",
- 0x322f: "ER_IB_MSG_1022",
+ 0x322A: "ER_IB_MSG_1017",
+ 0x322B: "ER_IB_MSG_1018",
+ 0x322C: "ER_IB_MSG_1019",
+ 0x322D: "ER_IB_MSG_1020",
+ 0x322E: "ER_IB_MSG_1021",
+ 0x322F: "ER_IB_MSG_1022",
0x3230: "ER_IB_MSG_1023",
0x3231: "ER_IB_MSG_1024",
0x3232: "ER_IB_MSG_1025",
@@ -4206,12 +4206,12 @@
0x3237: "ER_IB_MSG_1030",
0x3238: "ER_IB_MSG_1031",
0x3239: "ER_IB_MSG_1032",
- 0x323a: "ER_IB_MSG_1033",
- 0x323b: "ER_IB_MSG_1034",
- 0x323c: "ER_IB_MSG_1035",
- 0x323d: "ER_IB_MSG_1036",
- 0x323e: "ER_IB_MSG_1037",
- 0x323f: "ER_IB_MSG_1038",
+ 0x323A: "ER_IB_MSG_1033",
+ 0x323B: "ER_IB_MSG_1034",
+ 0x323C: "ER_IB_MSG_1035",
+ 0x323D: "ER_IB_MSG_1036",
+ 0x323E: "ER_IB_MSG_1037",
+ 0x323F: "ER_IB_MSG_1038",
0x3240: "ER_IB_MSG_1039",
0x3241: "ER_IB_MSG_1040",
0x3242: "ER_IB_MSG_1041",
@@ -4222,12 +4222,12 @@
0x3247: "ER_IB_MSG_1046",
0x3248: "ER_IB_MSG_1047",
0x3249: "ER_IB_MSG_1048",
- 0x324a: "ER_IB_MSG_1049",
- 0x324b: "ER_IB_MSG_1050",
- 0x324c: "ER_IB_MSG_1051",
- 0x324d: "ER_IB_MSG_1052",
- 0x324e: "ER_IB_MSG_1053",
- 0x324f: "ER_IB_MSG_1054",
+ 0x324A: "ER_IB_MSG_1049",
+ 0x324B: "ER_IB_MSG_1050",
+ 0x324C: "ER_IB_MSG_1051",
+ 0x324D: "ER_IB_MSG_1052",
+ 0x324E: "ER_IB_MSG_1053",
+ 0x324F: "ER_IB_MSG_1054",
0x3250: "ER_IB_MSG_1055",
0x3251: "ER_IB_MSG_1056",
0x3252: "ER_IB_MSG_1057",
@@ -4238,12 +4238,12 @@
0x3257: "ER_IB_MSG_1062",
0x3258: "ER_IB_MSG_1063",
0x3259: "ER_IB_MSG_1064",
- 0x325a: "ER_IB_MSG_1065",
- 0x325b: "ER_IB_MSG_1066",
- 0x325c: "ER_IB_MSG_1067",
- 0x325d: "ER_IB_MSG_1068",
- 0x325e: "ER_IB_MSG_1069",
- 0x325f: "ER_IB_MSG_1070",
+ 0x325A: "ER_IB_MSG_1065",
+ 0x325B: "ER_IB_MSG_1066",
+ 0x325C: "ER_IB_MSG_1067",
+ 0x325D: "ER_IB_MSG_1068",
+ 0x325E: "ER_IB_MSG_1069",
+ 0x325F: "ER_IB_MSG_1070",
0x3260: "ER_IB_MSG_1071",
0x3261: "ER_IB_MSG_1072",
0x3262: "ER_IB_MSG_1073",
@@ -4254,12 +4254,12 @@
0x3267: "ER_IB_MSG_1078",
0x3268: "ER_IB_MSG_1079",
0x3269: "ER_IB_MSG_1080",
- 0x326a: "ER_IB_MSG_1081",
- 0x326b: "ER_IB_MSG_1082",
- 0x326c: "ER_IB_MSG_1083",
- 0x326d: "ER_IB_MSG_1084",
- 0x326e: "ER_IB_MSG_1085",
- 0x326f: "ER_IB_MSG_1086",
+ 0x326A: "ER_IB_MSG_1081",
+ 0x326B: "ER_IB_MSG_1082",
+ 0x326C: "ER_IB_MSG_1083",
+ 0x326D: "ER_IB_MSG_1084",
+ 0x326E: "ER_IB_MSG_1085",
+ 0x326F: "ER_IB_MSG_1086",
0x3270: "ER_IB_MSG_1087",
0x3271: "ER_IB_MSG_1088",
0x3272: "ER_IB_MSG_1089",
@@ -4270,12 +4270,12 @@
0x3277: "ER_IB_MSG_1094",
0x3278: "ER_IB_MSG_1095",
0x3279: "ER_IB_MSG_1096",
- 0x327a: "ER_IB_MSG_1097",
- 0x327b: "ER_IB_MSG_1098",
- 0x327c: "ER_IB_MSG_1099",
- 0x327d: "ER_IB_MSG_1100",
- 0x327e: "ER_IB_MSG_1101",
- 0x327f: "ER_IB_MSG_1102",
+ 0x327A: "ER_IB_MSG_1097",
+ 0x327B: "ER_IB_MSG_1098",
+ 0x327C: "ER_IB_MSG_1099",
+ 0x327D: "ER_IB_MSG_1100",
+ 0x327E: "ER_IB_MSG_1101",
+ 0x327F: "ER_IB_MSG_1102",
0x3280: "ER_IB_MSG_1103",
0x3281: "ER_IB_MSG_1104",
0x3282: "ER_IB_MSG_1105",
@@ -4286,12 +4286,12 @@
0x3287: "ER_IB_MSG_1110",
0x3288: "ER_IB_MSG_1111",
0x3289: "ER_IB_MSG_1112",
- 0x328a: "ER_IB_MSG_1113",
- 0x328b: "ER_IB_MSG_1114",
- 0x328c: "ER_IB_MSG_1115",
- 0x328d: "ER_IB_MSG_1116",
- 0x328e: "ER_IB_MSG_1117",
- 0x328f: "ER_IB_MSG_1118",
+ 0x328A: "ER_IB_MSG_1113",
+ 0x328B: "ER_IB_MSG_1114",
+ 0x328C: "ER_IB_MSG_1115",
+ 0x328D: "ER_IB_MSG_1116",
+ 0x328E: "ER_IB_MSG_1117",
+ 0x328F: "ER_IB_MSG_1118",
0x3290: "ER_IB_MSG_1119",
0x3291: "ER_IB_MSG_1120",
0x3292: "ER_IB_MSG_1121",
@@ -4302,108 +4302,108 @@
0x3297: "ER_IB_MSG_1126",
0x3298: "ER_IB_MSG_1127",
0x3299: "ER_IB_MSG_1128",
- 0x329a: "ER_IB_MSG_1129",
- 0x329b: "ER_IB_MSG_1130",
- 0x329c: "ER_IB_MSG_1131",
- 0x329d: "ER_IB_MSG_1132",
- 0x329e: "ER_IB_MSG_1133",
- 0x329f: "ER_IB_MSG_1134",
- 0x32a0: "ER_IB_MSG_1135",
- 0x32a1: "ER_IB_MSG_1136",
- 0x32a2: "ER_IB_MSG_1137",
- 0x32a3: "ER_IB_MSG_1138",
- 0x32a4: "ER_IB_MSG_1139",
- 0x32a5: "ER_IB_MSG_1140",
- 0x32a6: "ER_IB_MSG_1141",
- 0x32a7: "ER_IB_MSG_1142",
- 0x32a8: "ER_IB_MSG_1143",
- 0x32a9: "ER_IB_MSG_1144",
- 0x32aa: "ER_IB_MSG_1145",
- 0x32ab: "ER_IB_MSG_1146",
- 0x32ac: "ER_IB_MSG_1147",
- 0x32ad: "ER_IB_MSG_1148",
- 0x32ae: "ER_IB_MSG_1149",
- 0x32af: "ER_IB_MSG_1150",
- 0x32b0: "ER_IB_MSG_1151",
- 0x32b1: "ER_IB_MSG_1152",
- 0x32b2: "ER_IB_MSG_1153",
- 0x32b3: "ER_IB_MSG_1154",
- 0x32b4: "ER_IB_MSG_1155",
- 0x32b5: "ER_IB_MSG_1156",
- 0x32b6: "ER_IB_MSG_1157",
- 0x32b7: "ER_IB_MSG_1158",
- 0x32b8: "ER_IB_MSG_1159",
- 0x32b9: "ER_IB_MSG_1160",
- 0x32ba: "ER_IB_MSG_1161",
- 0x32bb: "ER_IB_MSG_1162",
- 0x32bc: "ER_IB_MSG_1163",
- 0x32bd: "ER_IB_MSG_1164",
- 0x32be: "ER_IB_MSG_1165",
- 0x32bf: "ER_IB_MSG_1166",
- 0x32c0: "ER_IB_MSG_1167",
- 0x32c1: "ER_IB_MSG_1168",
- 0x32c2: "ER_IB_MSG_1169",
- 0x32c3: "ER_IB_MSG_1170",
- 0x32c4: "ER_IB_MSG_1171",
- 0x32c5: "ER_IB_MSG_1172",
- 0x32c6: "ER_IB_MSG_1173",
- 0x32c7: "ER_IB_MSG_1174",
- 0x32c8: "ER_IB_MSG_1175",
- 0x32c9: "ER_IB_MSG_1176",
- 0x32ca: "ER_IB_MSG_1177",
- 0x32cb: "ER_IB_MSG_1178",
- 0x32cc: "ER_IB_MSG_1179",
- 0x32cd: "ER_IB_MSG_1180",
- 0x32ce: "ER_IB_MSG_1181",
- 0x32cf: "ER_IB_MSG_1182",
- 0x32d0: "ER_IB_MSG_1183",
- 0x32d1: "ER_IB_MSG_1184",
- 0x32d2: "ER_IB_MSG_1185",
- 0x32d3: "ER_IB_MSG_1186",
- 0x32d4: "ER_IB_MSG_1187",
- 0x32d5: "ER_IB_MSG_1188",
- 0x32d6: "ER_IB_MSG_1189",
- 0x32d7: "ER_IB_MSG_1190",
- 0x32d8: "ER_IB_MSG_1191",
- 0x32d9: "ER_IB_MSG_1192",
- 0x32da: "ER_IB_MSG_1193",
- 0x32db: "ER_IB_MSG_1194",
- 0x32dc: "ER_IB_MSG_1195",
- 0x32dd: "ER_IB_MSG_1196",
- 0x32de: "ER_IB_MSG_1197",
- 0x32df: "ER_IB_MSG_1198",
- 0x32e0: "ER_IB_MSG_1199",
- 0x32e1: "ER_IB_MSG_1200",
- 0x32e2: "ER_IB_MSG_1201",
- 0x32e3: "ER_IB_MSG_1202",
- 0x32e4: "ER_IB_MSG_1203",
- 0x32e5: "ER_IB_MSG_1204",
- 0x32e6: "ER_IB_MSG_1205",
- 0x32e7: "ER_IB_MSG_1206",
- 0x32e8: "ER_IB_MSG_1207",
- 0x32e9: "ER_IB_MSG_1208",
- 0x32ea: "ER_IB_MSG_1209",
- 0x32eb: "ER_IB_MSG_1210",
- 0x32ec: "ER_IB_MSG_1211",
- 0x32ed: "ER_IB_MSG_1212",
- 0x32ee: "ER_IB_MSG_1213",
- 0x32ef: "ER_IB_MSG_1214",
- 0x32f0: "ER_IB_MSG_1215",
- 0x32f1: "ER_IB_MSG_1216",
- 0x32f2: "ER_IB_MSG_1217",
- 0x32f3: "ER_IB_MSG_1218",
- 0x32f4: "ER_IB_MSG_1219",
- 0x32f5: "ER_IB_MSG_1220",
- 0x32f6: "ER_IB_MSG_1221",
- 0x32f7: "ER_IB_MSG_1222",
- 0x32f8: "ER_IB_MSG_1223",
- 0x32f9: "ER_IB_MSG_1224",
- 0x32fa: "ER_IB_MSG_1225",
- 0x32fb: "ER_IB_MSG_1226",
- 0x32fc: "ER_IB_MSG_1227",
- 0x32fd: "ER_IB_MSG_1228",
- 0x32fe: "ER_IB_MSG_1229",
- 0x32ff: "ER_IB_MSG_1230",
+ 0x329A: "ER_IB_MSG_1129",
+ 0x329B: "ER_IB_MSG_1130",
+ 0x329C: "ER_IB_MSG_1131",
+ 0x329D: "ER_IB_MSG_1132",
+ 0x329E: "ER_IB_MSG_1133",
+ 0x329F: "ER_IB_MSG_1134",
+ 0x32A0: "ER_IB_MSG_1135",
+ 0x32A1: "ER_IB_MSG_1136",
+ 0x32A2: "ER_IB_MSG_1137",
+ 0x32A3: "ER_IB_MSG_1138",
+ 0x32A4: "ER_IB_MSG_1139",
+ 0x32A5: "ER_IB_MSG_1140",
+ 0x32A6: "ER_IB_MSG_1141",
+ 0x32A7: "ER_IB_MSG_1142",
+ 0x32A8: "ER_IB_MSG_1143",
+ 0x32A9: "ER_IB_MSG_1144",
+ 0x32AA: "ER_IB_MSG_1145",
+ 0x32AB: "ER_IB_MSG_1146",
+ 0x32AC: "ER_IB_MSG_1147",
+ 0x32AD: "ER_IB_MSG_1148",
+ 0x32AE: "ER_IB_MSG_1149",
+ 0x32AF: "ER_IB_MSG_1150",
+ 0x32B0: "ER_IB_MSG_1151",
+ 0x32B1: "ER_IB_MSG_1152",
+ 0x32B2: "ER_IB_MSG_1153",
+ 0x32B3: "ER_IB_MSG_1154",
+ 0x32B4: "ER_IB_MSG_1155",
+ 0x32B5: "ER_IB_MSG_1156",
+ 0x32B6: "ER_IB_MSG_1157",
+ 0x32B7: "ER_IB_MSG_1158",
+ 0x32B8: "ER_IB_MSG_1159",
+ 0x32B9: "ER_IB_MSG_1160",
+ 0x32BA: "ER_IB_MSG_1161",
+ 0x32BB: "ER_IB_MSG_1162",
+ 0x32BC: "ER_IB_MSG_1163",
+ 0x32BD: "ER_IB_MSG_1164",
+ 0x32BE: "ER_IB_MSG_1165",
+ 0x32BF: "ER_IB_MSG_1166",
+ 0x32C0: "ER_IB_MSG_1167",
+ 0x32C1: "ER_IB_MSG_1168",
+ 0x32C2: "ER_IB_MSG_1169",
+ 0x32C3: "ER_IB_MSG_1170",
+ 0x32C4: "ER_IB_MSG_1171",
+ 0x32C5: "ER_IB_MSG_1172",
+ 0x32C6: "ER_IB_MSG_1173",
+ 0x32C7: "ER_IB_MSG_1174",
+ 0x32C8: "ER_IB_MSG_1175",
+ 0x32C9: "ER_IB_MSG_1176",
+ 0x32CA: "ER_IB_MSG_1177",
+ 0x32CB: "ER_IB_MSG_1178",
+ 0x32CC: "ER_IB_MSG_1179",
+ 0x32CD: "ER_IB_MSG_1180",
+ 0x32CE: "ER_IB_MSG_1181",
+ 0x32CF: "ER_IB_MSG_1182",
+ 0x32D0: "ER_IB_MSG_1183",
+ 0x32D1: "ER_IB_MSG_1184",
+ 0x32D2: "ER_IB_MSG_1185",
+ 0x32D3: "ER_IB_MSG_1186",
+ 0x32D4: "ER_IB_MSG_1187",
+ 0x32D5: "ER_IB_MSG_1188",
+ 0x32D6: "ER_IB_MSG_1189",
+ 0x32D7: "ER_IB_MSG_1190",
+ 0x32D8: "ER_IB_MSG_1191",
+ 0x32D9: "ER_IB_MSG_1192",
+ 0x32DA: "ER_IB_MSG_1193",
+ 0x32DB: "ER_IB_MSG_1194",
+ 0x32DC: "ER_IB_MSG_1195",
+ 0x32DD: "ER_IB_MSG_1196",
+ 0x32DE: "ER_IB_MSG_1197",
+ 0x32DF: "ER_IB_MSG_1198",
+ 0x32E0: "ER_IB_MSG_1199",
+ 0x32E1: "ER_IB_MSG_1200",
+ 0x32E2: "ER_IB_MSG_1201",
+ 0x32E3: "ER_IB_MSG_1202",
+ 0x32E4: "ER_IB_MSG_1203",
+ 0x32E5: "ER_IB_MSG_1204",
+ 0x32E6: "ER_IB_MSG_1205",
+ 0x32E7: "ER_IB_MSG_1206",
+ 0x32E8: "ER_IB_MSG_1207",
+ 0x32E9: "ER_IB_MSG_1208",
+ 0x32EA: "ER_IB_MSG_1209",
+ 0x32EB: "ER_IB_MSG_1210",
+ 0x32EC: "ER_IB_MSG_1211",
+ 0x32ED: "ER_IB_MSG_1212",
+ 0x32EE: "ER_IB_MSG_1213",
+ 0x32EF: "ER_IB_MSG_1214",
+ 0x32F0: "ER_IB_MSG_1215",
+ 0x32F1: "ER_IB_MSG_1216",
+ 0x32F2: "ER_IB_MSG_1217",
+ 0x32F3: "ER_IB_MSG_1218",
+ 0x32F4: "ER_IB_MSG_1219",
+ 0x32F5: "ER_IB_MSG_1220",
+ 0x32F6: "ER_IB_MSG_1221",
+ 0x32F7: "ER_IB_MSG_1222",
+ 0x32F8: "ER_IB_MSG_1223",
+ 0x32F9: "ER_IB_MSG_1224",
+ 0x32FA: "ER_IB_MSG_1225",
+ 0x32FB: "ER_IB_MSG_1226",
+ 0x32FC: "ER_IB_MSG_1227",
+ 0x32FD: "ER_IB_MSG_1228",
+ 0x32FE: "ER_IB_MSG_1229",
+ 0x32FF: "ER_IB_MSG_1230",
0x3300: "ER_IB_MSG_1231",
0x3301: "ER_IB_MSG_1232",
0x3302: "ER_IB_MSG_1233",
@@ -4414,12 +4414,12 @@
0x3307: "ER_IB_MSG_1238",
0x3308: "ER_IB_MSG_1239",
0x3309: "ER_IB_MSG_1240",
- 0x330a: "ER_IB_MSG_1241",
- 0x330b: "ER_IB_MSG_1242",
- 0x330c: "ER_IB_MSG_1243",
- 0x330d: "ER_IB_MSG_1244",
- 0x330e: "ER_IB_MSG_1245",
- 0x330f: "ER_IB_MSG_1246",
+ 0x330A: "ER_IB_MSG_1241",
+ 0x330B: "ER_IB_MSG_1242",
+ 0x330C: "ER_IB_MSG_1243",
+ 0x330D: "ER_IB_MSG_1244",
+ 0x330E: "ER_IB_MSG_1245",
+ 0x330F: "ER_IB_MSG_1246",
0x3310: "ER_IB_MSG_1247",
0x3311: "ER_IB_MSG_1248",
0x3312: "ER_IB_MSG_1249",
@@ -4430,12 +4430,12 @@
0x3317: "ER_IB_MSG_1254",
0x3318: "ER_IB_MSG_1255",
0x3319: "ER_IB_MSG_1256",
- 0x331a: "ER_IB_MSG_1257",
- 0x331b: "ER_IB_MSG_1258",
- 0x331c: "ER_IB_MSG_1259",
- 0x331d: "ER_IB_MSG_1260",
- 0x331e: "ER_IB_MSG_1261",
- 0x331f: "ER_IB_MSG_1262",
+ 0x331A: "ER_IB_MSG_1257",
+ 0x331B: "ER_IB_MSG_1258",
+ 0x331C: "ER_IB_MSG_1259",
+ 0x331D: "ER_IB_MSG_1260",
+ 0x331E: "ER_IB_MSG_1261",
+ 0x331F: "ER_IB_MSG_1262",
0x3320: "ER_IB_MSG_1263",
0x3321: "ER_IB_MSG_1264",
0x3322: "ER_IB_MSG_1265",
@@ -4446,12 +4446,12 @@
0x3327: "ER_IB_MSG_1270",
0x3328: "ER_RPL_SLAVE_SQL_THREAD_STOP_CMD_EXEC_TIMEOUT",
0x3329: "ER_RPL_SLAVE_IO_THREAD_STOP_CMD_EXEC_TIMEOUT",
- 0x332a: "ER_RPL_GTID_UNSAFE_STMT_ON_NON_TRANS_TABLE",
- 0x332b: "ER_RPL_GTID_UNSAFE_STMT_CREATE_SELECT",
- 0x332c: "ER_RPL_GTID_UNSAFE_STMT_ON_TEMPORARY_TABLE",
- 0x332d: "ER_BINLOG_ROW_VALUE_OPTION_IGNORED",
- 0x332e: "ER_BINLOG_USE_V1_ROW_EVENTS_IGNORED",
- 0x332f: "ER_BINLOG_ROW_VALUE_OPTION_USED_ONLY_FOR_AFTER_IMAGES",
+ 0x332A: "ER_RPL_GTID_UNSAFE_STMT_ON_NON_TRANS_TABLE",
+ 0x332B: "ER_RPL_GTID_UNSAFE_STMT_CREATE_SELECT",
+ 0x332C: "ER_RPL_GTID_UNSAFE_STMT_ON_TEMPORARY_TABLE",
+ 0x332D: "ER_BINLOG_ROW_VALUE_OPTION_IGNORED",
+ 0x332E: "ER_BINLOG_USE_V1_ROW_EVENTS_IGNORED",
+ 0x332F: "ER_BINLOG_ROW_VALUE_OPTION_USED_ONLY_FOR_AFTER_IMAGES",
0x3330: "ER_CONNECTION_ABORTED",
0x3331: "ER_NORMAL_SERVER_SHUTDOWN",
0x3332: "ER_KEYRING_MIGRATE_FAILED",
@@ -4462,12 +4462,12 @@
0x3337: "ER_COMPONENT_FILTER_WRONG_VALUE",
0x3338: "ER_XPLUGIN_FAILED_TO_STOP_SERVICES",
0x3339: "ER_INCONSISTENT_ERROR",
- 0x333a: "ER_SERVER_MASTER_FATAL_ERROR_READING_BINLOG",
- 0x333b: "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE",
- 0x333c: "ER_SLAVE_CREATE_EVENT_FAILURE",
- 0x333d: "ER_SLAVE_FATAL_ERROR",
- 0x333e: "ER_SLAVE_HEARTBEAT_FAILURE",
- 0x333f: "ER_SLAVE_INCIDENT",
+ 0x333A: "ER_SERVER_MASTER_FATAL_ERROR_READING_BINLOG",
+ 0x333B: "ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE",
+ 0x333C: "ER_SLAVE_CREATE_EVENT_FAILURE",
+ 0x333D: "ER_SLAVE_FATAL_ERROR",
+ 0x333E: "ER_SLAVE_HEARTBEAT_FAILURE",
+ 0x333F: "ER_SLAVE_INCIDENT",
0x3340: "ER_SLAVE_MASTER_COM_FAILURE",
0x3341: "ER_SLAVE_RELAY_LOG_READ_FAILURE",
0x3342: "ER_SLAVE_RELAY_LOG_WRITE_FAILURE",
@@ -4478,12 +4478,12 @@
0x3347: "ER_SERVER_UNKNOWN_ERROR",
0x3348: "ER_SERVER_UNKNOWN_SYSTEM_VARIABLE",
0x3349: "ER_SERVER_NO_SESSION_TO_SEND_TO",
- 0x334a: "ER_SERVER_NEW_ABORTING_CONNECTION",
- 0x334b: "ER_SERVER_OUT_OF_SORTMEMORY",
- 0x334c: "ER_SERVER_RECORD_FILE_FULL",
- 0x334d: "ER_SERVER_DISK_FULL_NOWAIT",
- 0x334e: "ER_SERVER_HANDLER_ERROR",
- 0x334f: "ER_SERVER_NOT_FORM_FILE",
+ 0x334A: "ER_SERVER_NEW_ABORTING_CONNECTION",
+ 0x334B: "ER_SERVER_OUT_OF_SORTMEMORY",
+ 0x334C: "ER_SERVER_RECORD_FILE_FULL",
+ 0x334D: "ER_SERVER_DISK_FULL_NOWAIT",
+ 0x334E: "ER_SERVER_HANDLER_ERROR",
+ 0x334F: "ER_SERVER_NOT_FORM_FILE",
0x3350: "ER_SERVER_CANT_OPEN_FILE",
0x3351: "ER_SERVER_FILE_NOT_FOUND",
0x3352: "ER_SERVER_FILE_USED",
@@ -4494,12 +4494,12 @@
0x3357: "ER_SERVER_COL_COUNT_DOESNT_MATCH_CORRUPTED_V2",
0x3358: "ER_SERVER_ACL_TABLE_ERROR",
0x3359: "ER_SERVER_SLAVE_INIT_QUERY_FAILED",
- 0x335a: "ER_SERVER_SLAVE_CONVERSION_FAILED",
- 0x335b: "ER_SERVER_SLAVE_IGNORED_TABLE",
- 0x335c: "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION",
- 0x335d: "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON",
- 0x335e: "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF",
- 0x335f: "ER_SERVER_TEST_MESSAGE",
+ 0x335A: "ER_SERVER_SLAVE_CONVERSION_FAILED",
+ 0x335B: "ER_SERVER_SLAVE_IGNORED_TABLE",
+ 0x335C: "ER_CANT_REPLICATE_ANONYMOUS_WITH_AUTO_POSITION",
+ 0x335D: "ER_CANT_REPLICATE_ANONYMOUS_WITH_GTID_MODE_ON",
+ 0x335E: "ER_CANT_REPLICATE_GTID_WITH_GTID_MODE_OFF",
+ 0x335F: "ER_SERVER_TEST_MESSAGE",
0x3360: "ER_AUDIT_LOG_JSON_FILTER_PARSING_ERROR",
0x3361: "ER_AUDIT_LOG_JSON_FILTERING_NOT_ENABLED",
0x3362: "ER_PLUGIN_FAILED_TO_OPEN_TABLES",
@@ -4510,12 +4510,12 @@
0x3367: "ER_AUDIT_LOG_NO_KEYRING_PLUGIN_INSTALLED",
0x3368: "ER_AUDIT_LOG_HOST_NAME_INVALID_CHARACTER",
0x3369: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_HAS_NOT_BEEN_SET",
- 0x336a: "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY",
- 0x336b: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED",
- 0x336c: "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS",
- 0x336d: "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY",
- 0x336e: "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC",
- 0x336f: "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXIST",
+ 0x336A: "ER_AUDIT_LOG_COULD_NOT_CREATE_AES_KEY",
+ 0x336B: "ER_AUDIT_LOG_ENCRYPTION_PASSWORD_CANNOT_BE_FETCHED",
+ 0x336C: "ER_COULD_NOT_REINITIALIZE_AUDIT_LOG_FILTERS",
+ 0x336D: "ER_AUDIT_LOG_JSON_USER_NAME_CANNOT_BE_EMPTY",
+ 0x336E: "ER_AUDIT_LOG_USER_FIRST_CHARACTER_MUST_BE_ALPHANUMERIC",
+ 0x336F: "ER_AUDIT_LOG_JSON_FILTER_DOES_NOT_EXIST",
0x3370: "ER_IB_MSG_1271",
0x3371: "ER_STARTING_INIT",
0x3372: "ER_ENDING_INIT",
@@ -4526,12 +4526,12 @@
0x3377: "ER_XA_REPLICATION_FILTERS",
0x3378: "ER_UPDATE_GTID_PURGED_WITH_GR",
0x3379: "ER_AUDIT_LOG_TABLE_DEFINITION_NOT_UPDATED",
- 0x337a: "ER_NO_PATH_FOR_SHARED_LIBRARY",
- 0x337b: "ER_UDF_ALREADY_EXISTS",
- 0x337c: "ER_SET_EVENT_FAILED",
- 0x337d: "ER_FAILED_TO_ALLOCATE_SSL_BIO",
- 0x337e: "ER_IB_MSG_1273",
- 0x337f: "ER_PID_FILEPATH_LOCATIONS_INACCESSIBLE",
+ 0x337A: "ER_NO_PATH_FOR_SHARED_LIBRARY",
+ 0x337B: "ER_UDF_ALREADY_EXISTS",
+ 0x337C: "ER_SET_EVENT_FAILED",
+ 0x337D: "ER_FAILED_TO_ALLOCATE_SSL_BIO",
+ 0x337E: "ER_IB_MSG_1273",
+ 0x337F: "ER_PID_FILEPATH_LOCATIONS_INACCESSIBLE",
0x3380: "ER_UNKNOWN_VARIABLE_IN_PERSISTED_CONFIG_FILE",
0x3381: "ER_FAILED_TO_HANDLE_DEFAULTS_FILE",
0x3382: "ER_DUPLICATE_SYS_VAR",
diff --git a/zgrab2_schemas/zgrab2/ntp.py b/zgrab2_schemas/zgrab2/ntp.py
index 95a62146..54c604fd 100644
--- a/zgrab2_schemas/zgrab2/ntp.py
+++ b/zgrab2_schemas/zgrab2/ntp.py
@@ -7,56 +7,69 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-ntp_short = SubRecord({
- "seconds": Unsigned16BitInteger(),
- "fraction": Unsigned16BitInteger(),
-})
-
-ntp_long = SubRecord({
- "seconds": Unsigned32BitInteger(),
- "fraction": Unsigned32BitInteger(),
-})
-
-ntp_header = SubRecord({
- "leap_indicator": Unsigned8BitInteger(),
- "version": Unsigned8BitInteger(),
- "mode": Unsigned8BitInteger(),
- "stratum": Unsigned8BitInteger(),
- "poll": Signed8BitInteger(),
- "precision": Signed8BitInteger(),
- "root_delay": ntp_short,
- "root_dispersion": ntp_short,
- "reference_id": Binary(),
- "reference_timestamp": ntp_long,
- "origin_timestamp": ntp_long,
- "receive_timestamp": ntp_long,
- "transmit_timestamp": ntp_long,
-})
-
-mode7_header = SubRecord({
- "is_response": Boolean(),
- "has_more": Boolean(),
- "version": Unsigned8BitInteger(),
- "mode": Unsigned8BitInteger(),
- "is_authenticated": Boolean(),
- "sequence_number": Unsigned8BitInteger(),
- "implementation_number": String(),
- "request_code": String(),
- "error": String(),
- "num_items": Unsigned16BitInteger(),
- "mbz": Unsigned8BitInteger(),
- "item_size": Unsigned16BitInteger(),
-})
-
-ntp_scan_response = SubRecord({
- "result": SubRecord({
+ntp_short = SubRecord(
+ {
+ "seconds": Unsigned16BitInteger(),
+ "fraction": Unsigned16BitInteger(),
+ }
+)
+
+ntp_long = SubRecord(
+ {
+ "seconds": Unsigned32BitInteger(),
+ "fraction": Unsigned32BitInteger(),
+ }
+)
+
+ntp_header = SubRecord(
+ {
+ "leap_indicator": Unsigned8BitInteger(),
"version": Unsigned8BitInteger(),
- "time": String(),
- "time_response": ntp_header,
- "monlist_response": Binary(),
- "monlist_header": mode7_header,
- })
-}, extends=zgrab2.base_scan_response)
+ "mode": Unsigned8BitInteger(),
+ "stratum": Unsigned8BitInteger(),
+ "poll": Signed8BitInteger(),
+ "precision": Signed8BitInteger(),
+ "root_delay": ntp_short,
+ "root_dispersion": ntp_short,
+ "reference_id": Binary(),
+ "reference_timestamp": ntp_long,
+ "origin_timestamp": ntp_long,
+ "receive_timestamp": ntp_long,
+ "transmit_timestamp": ntp_long,
+ }
+)
+
+mode7_header = SubRecord(
+ {
+ "is_response": Boolean(),
+ "has_more": Boolean(),
+ "version": Unsigned8BitInteger(),
+ "mode": Unsigned8BitInteger(),
+ "is_authenticated": Boolean(),
+ "sequence_number": Unsigned8BitInteger(),
+ "implementation_number": String(),
+ "request_code": String(),
+ "error": String(),
+ "num_items": Unsigned16BitInteger(),
+ "mbz": Unsigned8BitInteger(),
+ "item_size": Unsigned16BitInteger(),
+ }
+)
+
+ntp_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "version": Unsigned8BitInteger(),
+ "time": String(),
+ "time_response": ntp_header,
+ "monlist_response": Binary(),
+ "monlist_header": mode7_header,
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-ntp", ntp_scan_response)
diff --git a/zgrab2_schemas/zgrab2/oracle.py b/zgrab2_schemas/zgrab2/oracle.py
index d0661c2e..200c636a 100644
--- a/zgrab2_schemas/zgrab2/oracle.py
+++ b/zgrab2_schemas/zgrab2/oracle.py
@@ -45,38 +45,92 @@
"Supervisor",
]
-descriptor_entry = SubRecord({
- "key": WhitespaceAnalyzedString(doc="The dot-separated path to the descriptor", examples=["DESCRIPTION.ERR", "DESCRIPTION.CONNECT_DATA.CID.PROGRAM"]),
- "value": WhitespaceAnalyzedString(doc="The descriptor value."),
-})
+descriptor_entry = SubRecord(
+ {
+ "key": WhitespaceAnalyzedString(
+ doc="The dot-separated path to the descriptor",
+ examples=["DESCRIPTION.ERR", "DESCRIPTION.CONNECT_DATA.CID.PROGRAM"],
+ ),
+ "value": WhitespaceAnalyzedString(doc="The descriptor value."),
+ }
+)
-oracle_scan_response = SubRecord({
- "result": SubRecord({
- "handshake": SubRecord({
- "accept_version": Unsigned16BitInteger(doc="The protocol version number from the Accept packet."),
- "global_service_options": FlagsSet(global_service_options, doc="Set of flags that the server returns in the Accept packet."),
- "connect_flags0": FlagsSet(connect_flags, doc="The first set of ConnectFlags returned in the Accept packet."),
- "connect_flags1": FlagsSet(connect_flags, doc="The second set of ConnectFlags returned in the Accept packet."),
- "did_resend": Boolean(doc="True if the server sent a Resend packet request in response to the client's first Connect packet."),
- "redirect_target_raw": WhitespaceAnalyzedString(doc="The connect descriptor returned by the server in the Redirect packet, if one is sent. Otherwise, omitted.", examples=[
- "(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=theServiceName)(CID=(PROGRAM=zgrab2)(HOST=targethost)(USER=targetuser)))(ADDRESS=(PROTOCOL=TCP)(HOST=1.2.3.4)(PORT=1521)))"
- ]),
- "redirect_target": ListOf(descriptor_entry, doc="The parsed connect descriptor returned by the server in the redirect packet, if one is sent. Otherwise, omitted. The parsed descriptor is a list of objects with key and value, where the keys strings like 'DESCRIPTION.CONNECT_DATA.SERVICE_NAME'."),
- "refuse_error_raw": WhitespaceAnalyzedString(doc="The data from the Refuse packet returned by the server; it is empty if the server does not return a Refuse packet.", examples=[
- "(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='()'))(ERROR=(CODE=303)(EMFI=1))))"
- ]),
- "refuse_error": ListOf(descriptor_entry, doc="The parsed descriptor returned by the server in the Refuse packet; it is empty if the server does not return a Refuse packet. The keys are strings like 'DESCRIPTION.ERROR_STACK.ERROR.CODE'."),
- "refuse_version": WhitespaceAnalyzedString(doc="The parsed DESCRIPTION.VSNNUM field from the RefuseError descriptor returned by the server in the Refuse packet, in dotted-decimal format.", examples=["11.2.0.2.0"]),
- "refuse_reason_app": WhitespaceAnalyzedString(doc="The 'AppReason' returned by the server in the RefusePacket, as an 8-bit unsigned hex string. Omitted if the server did not send a Refuse packet.", examples=["0x22", "0x04"]),
- "refuse_reason_sys": WhitespaceAnalyzedString(doc="The 'SysReason' returned by the server in the RefusePacket, as an 8-bit unsigned hex string. Omitted if the server did not send a Refuse packet.", examples=["0x00", "0x04"]),
- "nsn_version": WhitespaceAnalyzedString(doc="The ReleaseVersion string (in dotted-decimal format) in the root of the Native Service Negotiation packet.", examples=["11.2.0.2.0"]),
- "nsn_service_versions": SubRecord({
- service: WhitespaceAnalyzedString() for service in nsn_services
- }, doc="A map from the native Service Negotation service names to the ReleaseVersion (in dotted-decimal format) in that service packet."),
- }, doc="The log of the Oracle / TDS handshake process."),
- "tls": zgrab2.tls_log,
- })
-}, extends=zgrab2.base_scan_response)
+oracle_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "handshake": SubRecord(
+ {
+ "accept_version": Unsigned16BitInteger(
+ doc="The protocol version number from the Accept packet."
+ ),
+ "global_service_options": FlagsSet(
+ global_service_options,
+ doc="Set of flags that the server returns in the Accept packet.",
+ ),
+ "connect_flags0": FlagsSet(
+ connect_flags,
+ doc="The first set of ConnectFlags returned in the Accept packet.",
+ ),
+ "connect_flags1": FlagsSet(
+ connect_flags,
+ doc="The second set of ConnectFlags returned in the Accept packet.",
+ ),
+ "did_resend": Boolean(
+ doc="True if the server sent a Resend packet request in response to the client's first Connect packet."
+ ),
+ "redirect_target_raw": WhitespaceAnalyzedString(
+ doc="The connect descriptor returned by the server in the Redirect packet, if one is sent. Otherwise, omitted.",
+ examples=[
+ "(DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=theServiceName)(CID=(PROGRAM=zgrab2)(HOST=targethost)(USER=targetuser)))(ADDRESS=(PROTOCOL=TCP)(HOST=1.2.3.4)(PORT=1521)))"
+ ],
+ ),
+ "redirect_target": ListOf(
+ descriptor_entry,
+ doc="The parsed connect descriptor returned by the server in the redirect packet, if one is sent. Otherwise, omitted. The parsed descriptor is a list of objects with key and value, where the keys strings like 'DESCRIPTION.CONNECT_DATA.SERVICE_NAME'.",
+ ),
+ "refuse_error_raw": WhitespaceAnalyzedString(
+ doc="The data from the Refuse packet returned by the server; it is empty if the server does not return a Refuse packet.",
+ examples=[
+ "(DESCRIPTION=(ERR=1153)(VSNNUM=186647040)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='()'))(ERROR=(CODE=303)(EMFI=1))))"
+ ],
+ ),
+ "refuse_error": ListOf(
+ descriptor_entry,
+ doc="The parsed descriptor returned by the server in the Refuse packet; it is empty if the server does not return a Refuse packet. The keys are strings like 'DESCRIPTION.ERROR_STACK.ERROR.CODE'.",
+ ),
+ "refuse_version": WhitespaceAnalyzedString(
+ doc="The parsed DESCRIPTION.VSNNUM field from the RefuseError descriptor returned by the server in the Refuse packet, in dotted-decimal format.",
+ examples=["11.2.0.2.0"],
+ ),
+ "refuse_reason_app": WhitespaceAnalyzedString(
+ doc="The 'AppReason' returned by the server in the RefusePacket, as an 8-bit unsigned hex string. Omitted if the server did not send a Refuse packet.",
+ examples=["0x22", "0x04"],
+ ),
+ "refuse_reason_sys": WhitespaceAnalyzedString(
+ doc="The 'SysReason' returned by the server in the RefusePacket, as an 8-bit unsigned hex string. Omitted if the server did not send a Refuse packet.",
+ examples=["0x00", "0x04"],
+ ),
+ "nsn_version": WhitespaceAnalyzedString(
+ doc="The ReleaseVersion string (in dotted-decimal format) in the root of the Native Service Negotiation packet.",
+ examples=["11.2.0.2.0"],
+ ),
+ "nsn_service_versions": SubRecord(
+ {
+ service: WhitespaceAnalyzedString()
+ for service in nsn_services
+ },
+ doc="A map from the native Service Negotation service names to the ReleaseVersion (in dotted-decimal format) in that service packet.",
+ ),
+ },
+ doc="The log of the Oracle / TDS handshake process.",
+ ),
+ "tls": zgrab2.tls_log,
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-oracle", oracle_scan_response)
diff --git a/zgrab2_schemas/zgrab2/pop3.py b/zgrab2_schemas/zgrab2/pop3.py
index a6567c0d..a5f35088 100644
--- a/zgrab2_schemas/zgrab2/pop3.py
+++ b/zgrab2_schemas/zgrab2/pop3.py
@@ -7,16 +7,23 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-pop3_scan_response = SubRecord({
- "result": SubRecord({
- "banner": String(doc="The POP3 banner."),
- "noop": String(doc="The server's response to the NOOP command."),
- "help": String(doc="The server's response to the HELP command."),
- "starttls": String(doc="The server's response to the STARTTLS command."),
- "quit": String(doc="The server's response to the QUIT command."),
- "tls": zgrab2.tls_log,
- })
-}, extends=zgrab2.base_scan_response)
+pop3_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "banner": String(doc="The POP3 banner."),
+ "noop": String(doc="The server's response to the NOOP command."),
+ "help": String(doc="The server's response to the HELP command."),
+ "starttls": String(
+ doc="The server's response to the STARTTLS command."
+ ),
+ "quit": String(doc="The server's response to the QUIT command."),
+ "tls": zgrab2.tls_log,
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-pop3", pop3_scan_response)
diff --git a/zgrab2_schemas/zgrab2/postgres.py b/zgrab2_schemas/zgrab2/postgres.py
index b53fccd4..f964f22b 100644
--- a/zgrab2_schemas/zgrab2/postgres.py
+++ b/zgrab2_schemas/zgrab2/postgres.py
@@ -13,60 +13,80 @@
# These are defined in detail at
# https://www.postgresql.org/docs/10/static/protocol-error-fields.html
-postgres_error = SubRecord({
- "severity": WhitespaceAnalyzedString(),
- "severity_v": WhitespaceAnalyzedString(),
- "code": WhitespaceAnalyzedString(),
- "message": WhitespaceAnalyzedString(),
- "detail": WhitespaceAnalyzedString(),
- "hint": WhitespaceAnalyzedString(),
- "position": WhitespaceAnalyzedString(),
- "internal_position": WhitespaceAnalyzedString(),
- "internal_query": WhitespaceAnalyzedString(),
- "where": WhitespaceAnalyzedString(),
- "schema": WhitespaceAnalyzedString(),
- "table": WhitespaceAnalyzedString(),
- "data": WhitespaceAnalyzedString(),
- "constraint": WhitespaceAnalyzedString(),
- "file": WhitespaceAnalyzedString(),
- "line": WhitespaceAnalyzedString(),
- "routine": WhitespaceAnalyzedString(),
- "_unknown_error_tag": WhitespaceAnalyzedString(),
-})
+postgres_error = SubRecord(
+ {
+ "severity": WhitespaceAnalyzedString(),
+ "severity_v": WhitespaceAnalyzedString(),
+ "code": WhitespaceAnalyzedString(),
+ "message": WhitespaceAnalyzedString(),
+ "detail": WhitespaceAnalyzedString(),
+ "hint": WhitespaceAnalyzedString(),
+ "position": WhitespaceAnalyzedString(),
+ "internal_position": WhitespaceAnalyzedString(),
+ "internal_query": WhitespaceAnalyzedString(),
+ "where": WhitespaceAnalyzedString(),
+ "schema": WhitespaceAnalyzedString(),
+ "table": WhitespaceAnalyzedString(),
+ "data": WhitespaceAnalyzedString(),
+ "constraint": WhitespaceAnalyzedString(),
+ "file": WhitespaceAnalyzedString(),
+ "line": WhitespaceAnalyzedString(),
+ "routine": WhitespaceAnalyzedString(),
+ "_unknown_error_tag": WhitespaceAnalyzedString(),
+ }
+)
# modules/postgres/scanner.go - decodeAuthMode()
AUTH_MODES = [
- "kerberos_v5", "password_cleartext", "password_md5", "scm_credentials",
- "gss", "sspi", "sasl", "ok", "gss-continue", "sasl-continue", "sasl-final"
+ "kerberos_v5",
+ "password_cleartext",
+ "password_md5",
+ "scm_credentials",
+ "gss",
+ "sspi",
+ "sasl",
+ "ok",
+ "gss-continue",
+ "sasl-continue",
+ "sasl-final",
]
# modules/postgres/scanner.go: AuthenticationMode
-postgres_auth_mode = SubRecord({
- "mode": Enum(values=AUTH_MODES, required=False), # this gets lifted
- "Payload": Binary(),
-})
+postgres_auth_mode = SubRecord(
+ {
+ "mode": Enum(values=AUTH_MODES, required=False), # this gets lifted
+ "Payload": Binary(),
+ }
+)
# modules/postgres/scanner.go: BackendKeyData
-postgres_key_data = SubRecord({
- "process_id": Unsigned32BitInteger(),
- "secret_key": Unsigned32BitInteger(),
-})
+postgres_key_data = SubRecord(
+ {
+ "process_id": Unsigned32BitInteger(),
+ "secret_key": Unsigned32BitInteger(),
+ }
+)
# modules/postgres/scanner.go: PostgresResults
-postgres_scan_response = SubRecord({
- "result": SubRecord({
- "tls": zgrab2.tls_log,
- "supported_versions": WhitespaceAnalyzedString(),
- "protocol_error": postgres_error,
- "startup_error": postgres_error,
- "is_ssl": Boolean(),
- "authentication_mode": postgres_auth_mode,
- # TODO FIXME: This is currendly an unconstrained map[string]string
- "server_parameters": WhitespaceAnalyzedString(),
- "backend_key_data": postgres_key_data,
- "transaction_status": WhitespaceAnalyzedString(),
- })
-}, extends=zgrab2.base_scan_response)
+postgres_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "tls": zgrab2.tls_log,
+ "supported_versions": WhitespaceAnalyzedString(),
+ "protocol_error": postgres_error,
+ "startup_error": postgres_error,
+ "is_ssl": Boolean(),
+ "authentication_mode": postgres_auth_mode,
+ # TODO FIXME: This is currendly an unconstrained map[string]string
+ "server_parameters": WhitespaceAnalyzedString(),
+ "backend_key_data": postgres_key_data,
+ "transaction_status": WhitespaceAnalyzedString(),
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-postgres", postgres_scan_response)
diff --git a/zgrab2_schemas/zgrab2/redis.py b/zgrab2_schemas/zgrab2/redis.py
index a909a65e..e53f3d73 100644
--- a/zgrab2_schemas/zgrab2/redis.py
+++ b/zgrab2_schemas/zgrab2/redis.py
@@ -7,45 +7,106 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-redis_scan_response = SubRecord({
- "result": SubRecord({
- "commands": ListOf(String(), doc="The list of commands actually sent to the server, serialized in inline format, like 'PING' or 'AUTH somePassword'."),
- "raw_command_output": ListOf(Binary(), doc="The raw output returned by the server for each command sent; the indices match those of commands."),
- "ping_response": String(doc="The response from the PING command; should either be \"PONG\" or an authentication error.", examples=[
- "PONG",
- "(Error: NOAUTH Authentication required.)",
- ]),
- "info_response": String(doc="The response from the INFO command. Should be a series of key:value pairs separated by CRLFs.", examples=[
- "# Server\r\nredis_version:4.0.7\r\nkey2:value2\r\n",
- "(Error: NOAUTH Authentication required.)",
- ]),
- "auth_response": String(doc="The response from the AUTH command, if sent."),
- "nonexistent_response": String(doc="The response from the NONEXISTENT command.", examples=[
- "(Error: ERR unknown command 'NONEXISTENT')",
- ]),
- "quit_response": String(doc="The response to the QUIT command.", examples=["OK"]),
- "version": String(doc="The version string, read from the the info_response (if available)."),
- "major": Unsigned32BitInteger(doc="Major is the version's major number."),
- "minor": Unsigned32BitInteger(doc="Minor is the version's minor number."),
- "patchlevel": Unsigned32BitInteger(doc="Patchlevel is the version's patchlevel number."),
- "os": String(doc="The OS the Redis server is running, read from the the info_response (if available)."),
- "mode": String(doc="The mode the Redis server is running (standalone or cluster), read from the the info_response (if available)."),
- "git_sha1": String(doc="The Sha-1 Git commit hash the Redis server used."),
- "build_id": String(doc="The Build ID of the Redis server."),
- "arch_bits": String(doc="The architecture bits (32 or 64) the Redis server used to build."),
- "gcc_version": String(doc="The version of the GCC compiler used to compile the Redis server."),
- "mem_allocator": String(doc="The memory allocator."),
- "uptime_in_seconds": Unsigned32BitInteger(doc="The number of seconds since Redis server start."),
- "used_memory": Unsigned32BitInteger(doc="The total number of bytes allocated by Redis using its allocator."),
- "total_connections_received": Unsigned32BitInteger(doc="The total number of connections accepted by the server."),
- "total_commands_processed": Unsigned32BitInteger(doc="The total number of commands processed by the server."),
- "custom_responses": ListOf(SubRecord({
- "command": String(doc="The command portion of the command sent."),
- "arguments": String(doc="The arguments portion of the command sent."),
- "response": String(doc="The response from the sent command and arguments."),
- }), doc="The responses from the user-passed custom commands."),
- })
-}, extends=zgrab2.base_scan_response)
+redis_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "commands": ListOf(
+ String(),
+ doc="The list of commands actually sent to the server, serialized in inline format, like 'PING' or 'AUTH somePassword'.",
+ ),
+ "raw_command_output": ListOf(
+ Binary(),
+ doc="The raw output returned by the server for each command sent; the indices match those of commands.",
+ ),
+ "ping_response": String(
+ doc='The response from the PING command; should either be "PONG" or an authentication error.',
+ examples=[
+ "PONG",
+ "(Error: NOAUTH Authentication required.)",
+ ],
+ ),
+ "info_response": String(
+ doc="The response from the INFO command. Should be a series of key:value pairs separated by CRLFs.",
+ examples=[
+ "# Server\r\nredis_version:4.0.7\r\nkey2:value2\r\n",
+ "(Error: NOAUTH Authentication required.)",
+ ],
+ ),
+ "auth_response": String(
+ doc="The response from the AUTH command, if sent."
+ ),
+ "nonexistent_response": String(
+ doc="The response from the NONEXISTENT command.",
+ examples=[
+ "(Error: ERR unknown command 'NONEXISTENT')",
+ ],
+ ),
+ "quit_response": String(
+ doc="The response to the QUIT command.", examples=["OK"]
+ ),
+ "version": String(
+ doc="The version string, read from the the info_response (if available)."
+ ),
+ "major": Unsigned32BitInteger(
+ doc="Major is the version's major number."
+ ),
+ "minor": Unsigned32BitInteger(
+ doc="Minor is the version's minor number."
+ ),
+ "patchlevel": Unsigned32BitInteger(
+ doc="Patchlevel is the version's patchlevel number."
+ ),
+ "os": String(
+ doc="The OS the Redis server is running, read from the the info_response (if available)."
+ ),
+ "mode": String(
+ doc="The mode the Redis server is running (standalone or cluster), read from the the info_response (if available)."
+ ),
+ "git_sha1": String(
+ doc="The Sha-1 Git commit hash the Redis server used."
+ ),
+ "build_id": String(doc="The Build ID of the Redis server."),
+ "arch_bits": String(
+ doc="The architecture bits (32 or 64) the Redis server used to build."
+ ),
+ "gcc_version": String(
+ doc="The version of the GCC compiler used to compile the Redis server."
+ ),
+ "mem_allocator": String(doc="The memory allocator."),
+ "uptime_in_seconds": Unsigned32BitInteger(
+ doc="The number of seconds since Redis server start."
+ ),
+ "used_memory": Unsigned32BitInteger(
+ doc="The total number of bytes allocated by Redis using its allocator."
+ ),
+ "total_connections_received": Unsigned32BitInteger(
+ doc="The total number of connections accepted by the server."
+ ),
+ "total_commands_processed": Unsigned32BitInteger(
+ doc="The total number of commands processed by the server."
+ ),
+ "custom_responses": ListOf(
+ SubRecord(
+ {
+ "command": String(
+ doc="The command portion of the command sent."
+ ),
+ "arguments": String(
+ doc="The arguments portion of the command sent."
+ ),
+ "response": String(
+ doc="The response from the sent command and arguments."
+ ),
+ }
+ ),
+ doc="The responses from the user-passed custom commands.",
+ ),
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-redis", redis_scan_response)
diff --git a/zgrab2_schemas/zgrab2/siemens.py b/zgrab2_schemas/zgrab2/siemens.py
index 1e1ce3fd..526dc9c0 100644
--- a/zgrab2_schemas/zgrab2/siemens.py
+++ b/zgrab2_schemas/zgrab2/siemens.py
@@ -7,26 +7,31 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-siemens_scan_response = SubRecord({
- 'result': SubRecord({
- 'is_s7': Boolean(),
- 'system': String(),
- 'module': String(),
- 'plant_id': String(),
- 'copyright': String(),
- 'serial_number': String(),
- 'module_type': String(),
- 'reserved_for_os': String(),
- 'memory_serial_number': String(),
- 'cpu_profile': String(),
- 'oem_id': String(),
- 'location': String(),
- 'module_id': String(),
- 'hardware': String(),
- 'firmware': String(),
- })
-}, extends=zgrab2.base_scan_response)
+siemens_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "is_s7": Boolean(),
+ "system": String(),
+ "module": String(),
+ "plant_id": String(),
+ "copyright": String(),
+ "serial_number": String(),
+ "module_type": String(),
+ "reserved_for_os": String(),
+ "memory_serial_number": String(),
+ "cpu_profile": String(),
+ "oem_id": String(),
+ "location": String(),
+ "module_id": String(),
+ "hardware": String(),
+ "firmware": String(),
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
-zschema.registry.register_schema('zgrab2-siemens', siemens_scan_response)
+zschema.registry.register_schema("zgrab2-siemens", siemens_scan_response)
-zgrab2.register_scan_response_type('siemens', siemens_scan_response)
+zgrab2.register_scan_response_type("siemens", siemens_scan_response)
diff --git a/zgrab2_schemas/zgrab2/smb.py b/zgrab2_schemas/zgrab2/smb.py
index f1ac8c58..1798bbf2 100644
--- a/zgrab2_schemas/zgrab2/smb.py
+++ b/zgrab2_schemas/zgrab2/smb.py
@@ -8,68 +8,100 @@
from . import zgrab2
header_log = {
- 'protocol_id': Binary(),
- 'status': Unsigned32BitInteger(),
- 'command': Unsigned16BitInteger(),
- 'credits': Unsigned16BitInteger(),
- 'flags': Unsigned32BitInteger(),
+ "protocol_id": Binary(),
+ "status": Unsigned32BitInteger(),
+ "command": Unsigned16BitInteger(),
+ "credits": Unsigned16BitInteger(),
+ "flags": Unsigned32BitInteger(),
}
# Return a (shallow) copy of base, with the fields of new merged atop it
def extended(base, new):
- copy = {
- k: v for k, v in base.items()
- }
+ copy = {k: v for k, v in base.items()}
for k, v in new.items():
copy[k] = v
return copy
-negotiate_log = SubRecord(extended(header_log, {
- 'security_mode': Unsigned16BitInteger(),
- 'dialect_revision': Unsigned16BitInteger(),
- 'server_guid': Binary(),
- 'capabilities': Unsigned32BitInteger(),
- 'system_time': Unsigned32BitInteger(),
- 'server_start_time': Unsigned32BitInteger(),
- 'authentication_types': ListOf(String()),
-}))
+negotiate_log = SubRecord(
+ extended(
+ header_log,
+ {
+ "security_mode": Unsigned16BitInteger(),
+ "dialect_revision": Unsigned16BitInteger(),
+ "server_guid": Binary(),
+ "capabilities": Unsigned32BitInteger(),
+ "system_time": Unsigned32BitInteger(),
+ "server_start_time": Unsigned32BitInteger(),
+ "authentication_types": ListOf(String()),
+ },
+ )
+)
-session_setup_log = SubRecord(extended(header_log, {
- 'setup_flags': Unsigned16BitInteger(),
- 'target_name': String(),
- 'negotiate_flags': Unsigned32BitInteger(),
-}))
+session_setup_log = SubRecord(
+ extended(
+ header_log,
+ {
+ "setup_flags": Unsigned16BitInteger(),
+ "target_name": String(),
+ "negotiate_flags": Unsigned32BitInteger(),
+ },
+ )
+)
-smb_scan_response = SubRecord({
- 'result': SubRecord({
- 'smbv1_support': Boolean(),
- "smb_version": SubRecord({
- "major": Unsigned8BitInteger(doc="Major version"),
- "minor": Unsigned8BitInteger(doc="Minor version"),
- "revision": Unsigned8BitInteger(doc="Protocol Revision"),
- "version_string": String(doc="Full SMB Version String"),
- }),
- "native_os": String(doc="Operating system claimed by server"),
- "ntlm": String(doc="Native LAN Manager"),
- "group_name": String(doc="Group name"),
- "smb_capabilities": SubRecord({
- "smb_dfs_support": Boolean(doc="Server supports Distributed File System"),
- "smb_leasing_support": Boolean(doc="Server supports Leasing"),
- "smb_multicredit_support": Boolean(doc="Server supports multi-credit operations"),
- "smb_multchan_support": Boolean(doc="Server supports multiple channels per session"),
- "smb_persistent_handle_support": Boolean(doc="Server supports persistent handles"),
- "smb_directory_leasing_support": Boolean(doc="Server supports directory leasing"),
- "smb_encryption_support": Boolean(doc="Server supports encryption"),
- }, doc="Capabilities flags for the connection. See [MS-SMB2] Sect. 2.2.4."),
- 'negotiation_log': negotiate_log,
- 'has_ntlm': Boolean(doc="Server supports the NTLM authentication method"),
- 'session_setup_log': session_setup_log,
- })
-}, extends=zgrab2.base_scan_response)
+smb_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "smbv1_support": Boolean(),
+ "smb_version": SubRecord(
+ {
+ "major": Unsigned8BitInteger(doc="Major version"),
+ "minor": Unsigned8BitInteger(doc="Minor version"),
+ "revision": Unsigned8BitInteger(doc="Protocol Revision"),
+ "version_string": String(doc="Full SMB Version String"),
+ }
+ ),
+ "native_os": String(doc="Operating system claimed by server"),
+ "ntlm": String(doc="Native LAN Manager"),
+ "group_name": String(doc="Group name"),
+ "smb_capabilities": SubRecord(
+ {
+ "smb_dfs_support": Boolean(
+ doc="Server supports Distributed File System"
+ ),
+ "smb_leasing_support": Boolean(doc="Server supports Leasing"),
+ "smb_multicredit_support": Boolean(
+ doc="Server supports multi-credit operations"
+ ),
+ "smb_multchan_support": Boolean(
+ doc="Server supports multiple channels per session"
+ ),
+ "smb_persistent_handle_support": Boolean(
+ doc="Server supports persistent handles"
+ ),
+ "smb_directory_leasing_support": Boolean(
+ doc="Server supports directory leasing"
+ ),
+ "smb_encryption_support": Boolean(
+ doc="Server supports encryption"
+ ),
+ },
+ doc="Capabilities flags for the connection. See [MS-SMB2] Sect. 2.2.4.",
+ ),
+ "negotiation_log": negotiate_log,
+ "has_ntlm": Boolean(
+ doc="Server supports the NTLM authentication method"
+ ),
+ "session_setup_log": session_setup_log,
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
-zschema.registry.register_schema('zgrab2-smb', smb_scan_response)
+zschema.registry.register_schema("zgrab2-smb", smb_scan_response)
-zgrab2.register_scan_response_type('smb', smb_scan_response)
+zgrab2.register_scan_response_type("smb", smb_scan_response)
diff --git a/zgrab2_schemas/zgrab2/smtp.py b/zgrab2_schemas/zgrab2/smtp.py
index 46f46eef..5399b0f0 100644
--- a/zgrab2_schemas/zgrab2/smtp.py
+++ b/zgrab2_schemas/zgrab2/smtp.py
@@ -7,17 +7,22 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-smtp_scan_response = SubRecord({
- "result": SubRecord({
- "banner": String(),
- "ehlo": String(),
- "helo": String(),
- "help": String(),
- "starttls": String(),
- "quit": String(),
- "tls": zgrab2.tls_log,
- })
-}, extends=zgrab2.base_scan_response)
+smtp_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "banner": String(),
+ "ehlo": String(),
+ "helo": String(),
+ "help": String(),
+ "starttls": String(),
+ "quit": String(),
+ "tls": zgrab2.tls_log,
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-smtp", smtp_scan_response)
diff --git a/zgrab2_schemas/zgrab2/ssh.py b/zgrab2_schemas/zgrab2/ssh.py
index f9a216fd..13c0d05c 100644
--- a/zgrab2_schemas/zgrab2/ssh.py
+++ b/zgrab2_schemas/zgrab2/ssh.py
@@ -25,7 +25,7 @@
"curve25519-sha256@libssh.org",
"diffie-hellman-group-exchange-sha1",
"diffie-hellman-group-exchange-sha256",
- ]
+ ],
)
KexAlgorithms = ListOf.with_args(KexAlgorithm())
@@ -47,169 +47,232 @@
"ecdsa-sha2-nistp384",
"ecdsa-sha2-nistp521",
"ssh-ed25519",
- ]
+ ],
)
KeyAlgorithms = ListOf.with_args(KeyAlgorithm())
# From lib/ssh/common.go -- allSupportedCiphers
CipherAlgorithm = String.with_args(
- doc="An ssh cipher algorithm identifier, named according to section 6 of https://www.ietf.org/rfc/rfc4251.txt; see https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-16 for standard values.",
+ doc="An ssh cipher algorithm identifier, named according to section 6 of https://www.ietf.org/rfc/rfc4251.txt; see https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-16 for standard values.",
examples=[
- "aes128-ctr", "aes192-ctr", "aes256-ctr", "aes128-gcm@openssh.com",
- "aes128-cbc", "3des-cbc", "arcfour256", "arcfour128", "arcfour",
- ]
+ "aes128-ctr",
+ "aes192-ctr",
+ "aes256-ctr",
+ "aes128-gcm@openssh.com",
+ "aes128-cbc",
+ "3des-cbc",
+ "arcfour256",
+ "arcfour128",
+ "arcfour",
+ ],
)
CipherAlgorithms = ListOf.with_args(CipherAlgorithm())
-# From lib/ssh/common.go -- supportedMACs.
+# From lib/ssh/common.go -- supportedMACs.
MACAlgorithm = String.with_args(
doc="An ssh MAC algorithm identifier, named according to section 6 of https://www.ietf.org/rfc/rfc4251.txt; see https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-18 for standard values.",
- examples=["hmac-sha2-256", "hmac-sha1", "hmac-sha1-96"]
+ examples=["hmac-sha2-256", "hmac-sha1", "hmac-sha1-96"],
)
MACAlgorithms = ListOf.with_args(MACAlgorithm())
# From lib/ssh/common.go -- supportedCompressions
CompressionAlgorithm = String.with_args(
doc="An ssh compression algorithm identifier, named according to section 6 of https://www.ietf.org/rfc/rfc4251.txt; see https://www.iana.org/assignments/ssh-parameters/ssh-parameters.xhtml#ssh-parameters-20 for standard values.",
- examples=["none", "zlib"]
+ examples=["none", "zlib"],
)
CompressionAlgorithms = ListOf.with_args(CompressionAlgorithm())
-LanguageTag = String.with_args(doc="A language tag, as defined in https://www.ietf.org/rfc/rfc3066.txt.")
-LanguageTags = ListOf.with_args(LanguageTag(), doc="A name-list of language tags in order of preference.")
+LanguageTag = String.with_args(
+ doc="A language tag, as defined in https://www.ietf.org/rfc/rfc3066.txt."
+)
+LanguageTags = ListOf.with_args(
+ LanguageTag(), doc="A name-list of language tags in order of preference."
+)
# zgrab2/lib/ssh/messages.go: (Json)kexInitMsg
-KexInitMessage = SubRecordType({
- "cookie": Binary(),
- "kex_algorithms": KexAlgorithms(doc="Key exchange algorithms used in the handshake."),
- "host_key_algorithms": KeyAlgorithms(doc="Asymmetric key algorithms for the host key supported by the client."),
- "client_to_server_ciphers": CipherAlgorithms(),
- "server_to_client_ciphers": CipherAlgorithms(),
- "client_to_server_macs": MACAlgorithms(),
- "server_to_client_macs": MACAlgorithms(),
- "client_to_server_compression": CompressionAlgorithms(),
- "server_to_client_compression": CompressionAlgorithms(),
- "client_to_server_languages": LanguageTags(),
- "server_to_client_languages": LanguageTags(),
- "first_kex_follows": Boolean(),
- "reserved": Unsigned32BitInteger(),
-})
+KexInitMessage = SubRecordType(
+ {
+ "cookie": Binary(),
+ "kex_algorithms": KexAlgorithms(
+ doc="Key exchange algorithms used in the handshake."
+ ),
+ "host_key_algorithms": KeyAlgorithms(
+ doc="Asymmetric key algorithms for the host key supported by the client."
+ ),
+ "client_to_server_ciphers": CipherAlgorithms(),
+ "server_to_client_ciphers": CipherAlgorithms(),
+ "client_to_server_macs": MACAlgorithms(),
+ "server_to_client_macs": MACAlgorithms(),
+ "client_to_server_compression": CompressionAlgorithms(),
+ "server_to_client_compression": CompressionAlgorithms(),
+ "client_to_server_languages": LanguageTags(),
+ "server_to_client_languages": LanguageTags(),
+ "first_kex_follows": Boolean(),
+ "reserved": Unsigned32BitInteger(),
+ "serverHaSSH": String(),
+ }
+)
# zgrab2/lib/ssh/log.go: EndpointId
-EndpointID = SubRecordType({
- "raw": String(),
- "version": String(),
- "software": String(),
- "comment": String(),
-})
+EndpointID = SubRecordType(
+ {
+ "raw": String(),
+ "version": String(),
+ "software": String(),
+ "comment": String(),
+ }
+)
# This could be merged into a single class with e.g. an analyzed param,
# but it's probably clearer to just duplicate it.
-AnalyzedEndpointID = SubRecordType({
- "raw": AnalyzedString(),
- "version": String(),
- "software": AnalyzedString(),
- "comment": AnalyzedString(),
-})
+AnalyzedEndpointID = SubRecordType(
+ {
+ "raw": AnalyzedString(),
+ "version": String(),
+ "software": AnalyzedString(),
+ "comment": AnalyzedString(),
+ }
+)
# zgrab2/lib/ssh/kex.go: kexResult
-KexResult = SubRecordType({
- "H": Binary(),
- "K": Binary(),
- "session_id": Binary()
-})
+KexResult = SubRecordType({"H": Binary(), "K": Binary(), "session_id": Binary()})
# zgrab2/lib/ssh/keys.go: ed25519PublicKey
-ED25519PublicKey = SubRecordType({
- "public_bytes": Binary(),
-})
+ED25519PublicKey = SubRecordType(
+ {
+ "public_bytes": Binary(),
+ }
+)
# zgrab2/lib/ssh/kex.go: curve25519sha256JsonLogParameters (via curve25519sha256)
-Curve25519SHA256Params = SubRecordType({
- "client_public": Binary(required=False),
- "client_private": Binary(required=False),
- "server_public": Binary(required=False),
-})
+Curve25519SHA256Params = SubRecordType(
+ {
+ "client_public": Binary(required=False),
+ "client_private": Binary(required=False),
+ "server_public": Binary(required=False),
+ }
+)
# zgrab2/lib/ssh/certs.go: JsonSignature
-Signature = SubRecordType({
- "parsed": SubRecord({
- "algorithm": KeyAlgorithm(),
- "value": Binary(),
- }),
- "raw": Binary(),
- "h": Binary(),
-})
+Signature = SubRecordType(
+ {
+ "parsed": SubRecord(
+ {
+ "algorithm": KeyAlgorithm(),
+ "value": Binary(),
+ }
+ ),
+ "raw": Binary(),
+ "h": Binary(),
+ }
+)
# lib/ssh/kex.go: PublicKeyJsonLog, sans the certkey_public_key (since that would create a loop)
-SSHPublicKey = SubRecordType({
- "raw": Binary(),
- "fingerprint_sha256": String(),
- # TODO: Enum? Obviously must serialize to one of rsa/dsa/ecdsa/ed25519_public_key...
- "algorithm": String(),
- # For compatiblity with ztag
- "key_algorithm":String(),
- "rsa_public_key": zcrypto.RSAPublicKey(),
- "dsa_public_key": zcrypto.DSAPublicKey(),
- "ecdsa_public_key": zcrypto.ECDSAPublicKey(),
- "ed25519_public_key": ED25519PublicKey(),
-})
+SSHPublicKey = SubRecordType(
+ {
+ "raw": Binary(),
+ "fingerprint_sha256": String(),
+ # TODO: Enum? Obviously must serialize to one of rsa/dsa/ecdsa/ed25519_public_key...
+ "algorithm": String(),
+ # For compatiblity with ztag
+ "key_algorithm": String(),
+ "rsa_public_key": zcrypto.RSAPublicKey(),
+ "dsa_public_key": zcrypto.DSAPublicKey(),
+ "ecdsa_public_key": zcrypto.ECDSAPublicKey(),
+ "ed25519_public_key": ED25519PublicKey(),
+ }
+)
# lib/ssh/certs.go: JsonCertType
-CertType = SubRecordType({
- "id": Unsigned32BitInteger(doc="The numerical certificate type value. 1 identifies user certificates, 2 identifies host certificates."),
- "name": Enum(values=["USER", "HOST", "unknown"], doc="The human-readable name for the certificate type."),
-})
+CertType = SubRecordType(
+ {
+ "id": Unsigned32BitInteger(
+ doc="The numerical certificate type value. 1 identifies user certificates, 2 identifies host certificates."
+ ),
+ "name": Enum(
+ values=["USER", "HOST", "unknown"],
+ doc="The human-readable name for the certificate type.",
+ ),
+ }
+)
# lib/ssh/certs.go: JsonCertificate
-SSHPublicKeyCert = SubRecord.with_args({
- # TODO: Use / include our cert type here, or maybe somewhere else in the response?
- "certkey_public_key": SubRecord({
- "nonce": Binary(),
- # Note that this is not recursive, since SSHPublicKey() does not include certkey_public_key.
- "key": SSHPublicKey(),
- "serial": String(doc="The certificate serial number, encoded as a base-10 string."),
- "cert_type": CertType(),
- "key_id": String(doc="A free-form text field filled in by the CA at the time of signing, intended to identify the principal in log messages."),
- "valid_principals": ListOf(String(), doc="Names for which this certificate is valid; hostnames for cert_type=HOST certificates and usernames for cert_type=USER certificates."),
- "validity": SubRecord({
- "valid_after": DateTime(doc="Timestamp of when certificate is first valid. Timezone is UTC."),
- "valid_before": DateTime(doc="Timestamp of when certificate expires. Timezone is UTC."),
- "length": Signed64BitInteger(),
- }),
- "reserved": Binary(),
- "signature_key": SSHPublicKey(),
- "signature": Signature(),
- "parse_error": String(),
- "extensions": SubRecord({
- "known": SubRecord({
- "permit_X11_forwarding": String(),
- "permit_agent_forwarding": String(),
- "permit_port_forwarding": String(),
- "permit_pty": String(),
- "permit_user_rc": String(),
- }),
- "unknown": ListOf(String()),
- }),
- "critical_options": SubRecord({
- "known": SubRecord({
- "force_command": String(),
- "source_address": String(),
- }),
- "unknown": ListOf(String()),
- })
- })
-}, extends=SSHPublicKey())
+SSHPublicKeyCert = SubRecord.with_args(
+ {
+ # TODO: Use / include our cert type here, or maybe somewhere else in the response?
+ "certkey_public_key": SubRecord(
+ {
+ "nonce": Binary(),
+ # Note that this is not recursive, since SSHPublicKey() does not include certkey_public_key.
+ "key": SSHPublicKey(),
+ "serial": String(
+ doc="The certificate serial number, encoded as a base-10 string."
+ ),
+ "cert_type": CertType(),
+ "key_id": String(
+ doc="A free-form text field filled in by the CA at the time of signing, intended to identify the principal in log messages."
+ ),
+ "valid_principals": ListOf(
+ String(),
+ doc="Names for which this certificate is valid; hostnames for cert_type=HOST certificates and usernames for cert_type=USER certificates.",
+ ),
+ "validity": SubRecord(
+ {
+ "valid_after": DateTime(
+ doc="Timestamp of when certificate is first valid. Timezone is UTC."
+ ),
+ "valid_before": DateTime(
+ doc="Timestamp of when certificate expires. Timezone is UTC."
+ ),
+ "length": Signed64BitInteger(),
+ }
+ ),
+ "reserved": Binary(),
+ "signature_key": SSHPublicKey(),
+ "signature": Signature(),
+ "parse_error": String(),
+ "extensions": SubRecord(
+ {
+ "known": SubRecord(
+ {
+ "permit_X11_forwarding": String(),
+ "permit_agent_forwarding": String(),
+ "permit_port_forwarding": String(),
+ "permit_pty": String(),
+ "permit_user_rc": String(),
+ }
+ ),
+ "unknown": ListOf(String()),
+ }
+ ),
+ "critical_options": SubRecord(
+ {
+ "known": SubRecord(
+ {
+ "force_command": String(),
+ "source_address": String(),
+ }
+ ),
+ "unknown": ListOf(String()),
+ }
+ ),
+ }
+ )
+ },
+ extends=SSHPublicKey(),
+)
# zgrab2/lib/ssh/common.go: directionAlgorithms
-DirectionAlgorithms = SubRecordType({
- "cipher": CipherAlgorithm(),
- "mac": MACAlgorithm(),
- "compression": CompressionAlgorithm(),
-})
+DirectionAlgorithms = SubRecordType(
+ {
+ "cipher": CipherAlgorithm(),
+ "mac": MACAlgorithm(),
+ "compression": CompressionAlgorithm(),
+ }
+)
# zgrab2/lib/ssh/kex.go: interface kexAlgorithm
# Searching usages of kexAlgorithm turns up:
@@ -217,37 +280,46 @@
# - ecdh: ecdh_params, server_signature, server_host_key
# - curve25519sha256: curve25519_sha256_params, server_signature, server_host_key
# - dhGEXSHA: dh_params, server_signature, server_host_key
-KeyExchange = SubRecordType({
- "curve25519_sha256_params": Curve25519SHA256Params(),
- "ecdh_params": zcrypto.ECDHParams(),
- "dh_params": zcrypto.DHParams(),
- "server_signature": Signature(),
- "server_host_key": SSHPublicKeyCert(),
-})
+KeyExchange = SubRecordType(
+ {
+ "curve25519_sha256_params": Curve25519SHA256Params(),
+ "ecdh_params": zcrypto.ECDHParams(),
+ "dh_params": zcrypto.DHParams(),
+ "server_signature": Signature(),
+ "server_host_key": SSHPublicKeyCert(),
+ }
+)
# zgrab2/lib/ssh/common.go: algorithms (aux in MarshalJSON)
-AlgorithmSelection = SubRecordType({
- "dh_kex_algorithm": KexAlgorithm(),
- "host_key_algorithm": KeyAlgorithm(),
- "client_to_server_alg_group": DirectionAlgorithms(),
- "server_to_client_alg_group": DirectionAlgorithms(),
-})
+AlgorithmSelection = SubRecordType(
+ {
+ "dh_kex_algorithm": KexAlgorithm(),
+ "host_key_algorithm": KeyAlgorithm(),
+ "client_to_server_alg_group": DirectionAlgorithms(),
+ "server_to_client_alg_group": DirectionAlgorithms(),
+ }
+)
# zgrab2/lib/ssh/log.go: HandshakeLog
# TODO: Can ssh re-use any of the generic TLS model?
-ssh_scan_response = SubRecord({
- "result": SubRecord({
- "banner": WhitespaceAnalyzedString(),
- "server_id": AnalyzedEndpointID(),
- "client_id": EndpointID(),
- "server_key_exchange": KexInitMessage(),
- "client_key_exchange": KexInitMessage(),
- "algorithm_selection": AlgorithmSelection(),
- "key_exchange": KeyExchange(),
- "userauth": ListOf(String()),
- "crypto": KexResult(),
- })
-}, extends=zgrab2.base_scan_response)
+ssh_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "banner": WhitespaceAnalyzedString(),
+ "server_id": AnalyzedEndpointID(),
+ "client_id": EndpointID(),
+ "server_key_exchange": KexInitMessage(),
+ "client_key_exchange": KexInitMessage(),
+ "algorithm_selection": AlgorithmSelection(),
+ "key_exchange": KeyExchange(),
+ "userauth": ListOf(String()),
+ "crypto": KexResult(),
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-ssh", ssh_scan_response)
zgrab2.register_scan_response_type("ssh", ssh_scan_response)
diff --git a/zgrab2_schemas/zgrab2/telnet.py b/zgrab2_schemas/zgrab2/telnet.py
index 74fa1951..235ebe43 100644
--- a/zgrab2_schemas/zgrab2/telnet.py
+++ b/zgrab2_schemas/zgrab2/telnet.py
@@ -7,20 +7,27 @@
import zcrypto_schemas.zcrypto as zcrypto
from . import zgrab2
-telnet_option = SubRecord({
- "name": String(),
- "value": Unsigned16BitInteger(),
-})
+telnet_option = SubRecord(
+ {
+ "name": String(),
+ "value": Unsigned16BitInteger(),
+ }
+)
-telnet_scan_response = SubRecord({
- "result": SubRecord({
- "banner": String(),
- "will": ListOf(telnet_option),
- "do": ListOf(telnet_option),
- "wont": ListOf(telnet_option),
- "dont": ListOf(telnet_option),
- })
-}, extends=zgrab2.base_scan_response)
+telnet_scan_response = SubRecord(
+ {
+ "result": SubRecord(
+ {
+ "banner": String(),
+ "will": ListOf(telnet_option),
+ "do": ListOf(telnet_option),
+ "wont": ListOf(telnet_option),
+ "dont": ListOf(telnet_option),
+ }
+ )
+ },
+ extends=zgrab2.base_scan_response,
+)
zschema.registry.register_schema("zgrab2-telnet", telnet_scan_response)
diff --git a/zgrab2_schemas/zgrab2/tests.py b/zgrab2_schemas/zgrab2/tests.py
index bb511763..d49bc4f3 100644
--- a/zgrab2_schemas/zgrab2/tests.py
+++ b/zgrab2_schemas/zgrab2/tests.py
@@ -17,21 +17,24 @@
import zschema
import zschema.registry
+
def get_data_dir():
- return os.path.join(os.path.dirname(os.path.abspath(__file__)), 'testdata')
+ return os.path.join(os.path.dirname(os.path.abspath(__file__)), "testdata")
+
def get_data_file(file):
return os.path.join(get_data_dir(), file)
+
def get_data_files():
dir = get_data_dir()
files = os.listdir(dir)
- return [
- file for file in files if file.endswith(".json")
- ]
+ return [file for file in files if file.endswith(".json")]
+
def get_schemas():
- return [ item for item in zgrab2.scan_response_types ]
+ return [item for item in zgrab2.scan_response_types]
+
class SchemaTests(unittest.TestCase):
diff --git a/zgrab2_schemas/zgrab2/zgrab2.py b/zgrab2_schemas/zgrab2/zgrab2.py
index 7e62954f..b5746ea0 100644
--- a/zgrab2_schemas/zgrab2/zgrab2.py
+++ b/zgrab2_schemas/zgrab2/zgrab2.py
@@ -22,46 +22,59 @@ def DebugOnly(childType):
# Get a dict of all keys, mapping key -> true
def FlagsSet(keys, **kwargs):
- return SubRecord({
- key: Boolean() for key in keys
- }, **kwargs)
+ return SubRecord({key: Boolean() for key in keys}, **kwargs)
# zgrab2/processing.go: Grab
-grab_result = Record({
- # TODO: ip may be required; see https://github.com/zmap/zgrab2/issues/104
- "ip": IPv4Address(required=False, doc="The IP address of the target."),
- "domain": String(required=False, doc="The domain name of the target, if available."),
- "data": SubRecord(scan_response_types, doc="The scan data for this host."),
-})
+grab_result = Record(
+ {
+ # TODO: ip may be required; see https://github.com/zmap/zgrab2/issues/104
+ "ip": IPv4Address(required=False, doc="The IP address of the target."),
+ "domain": String(
+ required=False, doc="The domain name of the target, if available."
+ ),
+ "data": SubRecord(scan_response_types, doc="The scan data for this host."),
+ }
+)
# zgrab2/module.go: const SCAN_*
STATUS_VALUES = [
- "success",
- "connection-refused",
- "connection-timeout",
- "connection-closed",
- "io-timeout",
- "protocol-error",
- "application-error",
- "unknown-error",
+ "success",
+ "connection-refused",
+ "connection-timeout",
+ "connection-closed",
+ "io-timeout",
+ "protocol-error",
+ "application-error",
+ "unknown-error",
]
# zgrab2/module.go: ScanResponse
-base_scan_response = SubRecord({
- "status": Enum(values=STATUS_VALUES, doc="The status of the request."),
- "protocol": String(doc="The identifier of the protocol being scanned."),
- "timestamp": DateTime(doc="The time the scan was started."),
- "result": SubRecord({}, required=False), # This is overridden by the protocols' implementations
- "error": String(required=False, doc="If the status was not success, error may contain information about the failure.")
- # TODO: error_component? domain?
-})
+base_scan_response = SubRecord(
+ {
+ "status": Enum(values=STATUS_VALUES, doc="The status of the request."),
+ "protocol": String(doc="The identifier of the protocol being scanned."),
+ "timestamp": DateTime(doc="The time the scan was started."),
+ "result": SubRecord(
+ {}, required=False
+ ), # This is overridden by the protocols' implementations
+ "error": String(
+ required=False,
+ doc="If the status was not success, error may contain information about the failure.",
+ ),
+ # TODO: error_component? domain?
+ }
+)
# zgrab2/tls.go: TLSLog
-tls_log = SubRecord({
- "handshake_log": zcrypto.TLSHandshake(doc="The TLS handshake log."),
- "heartbleed_log": zcrypto.HeartbleedLog(doc="The heartbleed scan log, if heartbleed scanning was enabled; otherwise, absent.")
-})
+tls_log = SubRecord(
+ {
+ "handshake_log": zcrypto.TLSHandshake(doc="The TLS handshake log."),
+ "heartbleed_log": zcrypto.HeartbleedLog(
+ doc="The heartbleed scan log, if heartbleed scanning was enabled; otherwise, absent."
+ ),
+ }
+)
# Register a schema type for responses with the given name.